All Downloads are FREE. Search and download functionalities are using the official Maven repository.

skadistats.clarity.wire.dota.common.proto.DOTAUserMessages Maven / Gradle / Ivy

Go to download

Clarity is an open source replay parser for Dota 2 and CSGO 1 and 2 written in Java. This JAR contains the protobuf classes for clarity.

The newest version!
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: dota_usermessages.proto

package skadistats.clarity.wire.dota.common.proto;

public final class DOTAUserMessages {
  private DOTAUserMessages() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code DOTA_COMBATLOG_TYPES}
   */
  public enum DOTA_COMBATLOG_TYPES
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_COMBATLOG_INVALID = -1;
     */
    DOTA_COMBATLOG_INVALID(0, -1),
    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    DOTA_COMBATLOG_DAMAGE(1, 0),
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    DOTA_COMBATLOG_HEAL(2, 1),
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    DOTA_COMBATLOG_MODIFIER_ADD(3, 2),
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    DOTA_COMBATLOG_MODIFIER_REMOVE(4, 3),
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    DOTA_COMBATLOG_DEATH(5, 4),
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    DOTA_COMBATLOG_ABILITY(6, 5),
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    DOTA_COMBATLOG_ITEM(7, 6),
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    DOTA_COMBATLOG_LOCATION(8, 7),
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    DOTA_COMBATLOG_GOLD(9, 8),
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    DOTA_COMBATLOG_GAME_STATE(10, 9),
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    DOTA_COMBATLOG_XP(11, 10),
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    DOTA_COMBATLOG_PURCHASE(12, 11),
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    DOTA_COMBATLOG_BUYBACK(13, 12),
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    DOTA_COMBATLOG_ABILITY_TRIGGER(14, 13),
    /**
     * DOTA_COMBATLOG_PLAYERSTATS = 14;
     */
    DOTA_COMBATLOG_PLAYERSTATS(15, 14),
    /**
     * DOTA_COMBATLOG_MULTIKILL = 15;
     */
    DOTA_COMBATLOG_MULTIKILL(16, 15),
    /**
     * DOTA_COMBATLOG_KILLSTREAK = 16;
     */
    DOTA_COMBATLOG_KILLSTREAK(17, 16),
    /**
     * DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
     */
    DOTA_COMBATLOG_TEAM_BUILDING_KILL(18, 17),
    /**
     * DOTA_COMBATLOG_FIRST_BLOOD = 18;
     */
    DOTA_COMBATLOG_FIRST_BLOOD(19, 18),
    /**
     * DOTA_COMBATLOG_MODIFIER_STACK_EVENT = 19;
     */
    DOTA_COMBATLOG_MODIFIER_STACK_EVENT(20, 19),
    /**
     * DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20;
     */
    DOTA_COMBATLOG_NEUTRAL_CAMP_STACK(21, 20),
    /**
     * DOTA_COMBATLOG_PICKUP_RUNE = 21;
     */
    DOTA_COMBATLOG_PICKUP_RUNE(22, 21),
    /**
     * DOTA_COMBATLOG_REVEALED_INVISIBLE = 22;
     */
    DOTA_COMBATLOG_REVEALED_INVISIBLE(23, 22),
    /**
     * DOTA_COMBATLOG_HERO_SAVED = 23;
     */
    DOTA_COMBATLOG_HERO_SAVED(24, 23),
    /**
     * DOTA_COMBATLOG_MANA_RESTORED = 24;
     */
    DOTA_COMBATLOG_MANA_RESTORED(25, 24),
    /**
     * DOTA_COMBATLOG_HERO_LEVELUP = 25;
     */
    DOTA_COMBATLOG_HERO_LEVELUP(26, 25),
    /**
     * DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26;
     */
    DOTA_COMBATLOG_BOTTLE_HEAL_ALLY(27, 26),
    /**
     * DOTA_COMBATLOG_ENDGAME_STATS = 27;
     */
    DOTA_COMBATLOG_ENDGAME_STATS(28, 27),
    /**
     * DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28;
     */
    DOTA_COMBATLOG_INTERRUPT_CHANNEL(29, 28),
    /**
     * DOTA_COMBATLOG_ALLIED_GOLD = 29;
     */
    DOTA_COMBATLOG_ALLIED_GOLD(30, 29),
    /**
     * DOTA_COMBATLOG_AEGIS_TAKEN = 30;
     */
    DOTA_COMBATLOG_AEGIS_TAKEN(31, 30),
    /**
     * DOTA_COMBATLOG_MANA_DAMAGE = 31;
     */
    DOTA_COMBATLOG_MANA_DAMAGE(32, 31),
    /**
     * DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED = 32;
     */
    DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED(33, 32),
    /**
     * DOTA_COMBATLOG_UNIT_SUMMONED = 33;
     */
    DOTA_COMBATLOG_UNIT_SUMMONED(34, 33),
    /**
     * DOTA_COMBATLOG_ATTACK_EVADE = 34;
     */
    DOTA_COMBATLOG_ATTACK_EVADE(35, 34),
    /**
     * DOTA_COMBATLOG_TREE_CUT = 35;
     */
    DOTA_COMBATLOG_TREE_CUT(36, 35),
    /**
     * DOTA_COMBATLOG_SUCCESSFUL_SCAN = 36;
     */
    DOTA_COMBATLOG_SUCCESSFUL_SCAN(37, 36),
    /**
     * DOTA_COMBATLOG_END_KILLSTREAK = 37;
     */
    DOTA_COMBATLOG_END_KILLSTREAK(38, 37),
    /**
     * DOTA_COMBATLOG_BLOODSTONE_CHARGE = 38;
     */
    DOTA_COMBATLOG_BLOODSTONE_CHARGE(39, 38),
    /**
     * DOTA_COMBATLOG_CRITICAL_DAMAGE = 39;
     */
    DOTA_COMBATLOG_CRITICAL_DAMAGE(40, 39),
    /**
     * DOTA_COMBATLOG_SPELL_ABSORB = 40;
     */
    DOTA_COMBATLOG_SPELL_ABSORB(41, 40),
    /**
     * DOTA_COMBATLOG_UNIT_TELEPORTED = 41;
     */
    DOTA_COMBATLOG_UNIT_TELEPORTED(42, 41),
    /**
     * DOTA_COMBATLOG_KILL_EATER_EVENT = 42;
     */
    DOTA_COMBATLOG_KILL_EATER_EVENT(43, 42),
    /**
     * DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED = 43;
     */
    DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED(44, 43),
    ;

    /**
     * DOTA_COMBATLOG_INVALID = -1;
     */
    public static final int DOTA_COMBATLOG_INVALID_VALUE = -1;
    /**
     * DOTA_COMBATLOG_DAMAGE = 0;
     */
    public static final int DOTA_COMBATLOG_DAMAGE_VALUE = 0;
    /**
     * DOTA_COMBATLOG_HEAL = 1;
     */
    public static final int DOTA_COMBATLOG_HEAL_VALUE = 1;
    /**
     * DOTA_COMBATLOG_MODIFIER_ADD = 2;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_ADD_VALUE = 2;
    /**
     * DOTA_COMBATLOG_MODIFIER_REMOVE = 3;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_REMOVE_VALUE = 3;
    /**
     * DOTA_COMBATLOG_DEATH = 4;
     */
    public static final int DOTA_COMBATLOG_DEATH_VALUE = 4;
    /**
     * DOTA_COMBATLOG_ABILITY = 5;
     */
    public static final int DOTA_COMBATLOG_ABILITY_VALUE = 5;
    /**
     * DOTA_COMBATLOG_ITEM = 6;
     */
    public static final int DOTA_COMBATLOG_ITEM_VALUE = 6;
    /**
     * DOTA_COMBATLOG_LOCATION = 7;
     */
    public static final int DOTA_COMBATLOG_LOCATION_VALUE = 7;
    /**
     * DOTA_COMBATLOG_GOLD = 8;
     */
    public static final int DOTA_COMBATLOG_GOLD_VALUE = 8;
    /**
     * DOTA_COMBATLOG_GAME_STATE = 9;
     */
    public static final int DOTA_COMBATLOG_GAME_STATE_VALUE = 9;
    /**
     * DOTA_COMBATLOG_XP = 10;
     */
    public static final int DOTA_COMBATLOG_XP_VALUE = 10;
    /**
     * DOTA_COMBATLOG_PURCHASE = 11;
     */
    public static final int DOTA_COMBATLOG_PURCHASE_VALUE = 11;
    /**
     * DOTA_COMBATLOG_BUYBACK = 12;
     */
    public static final int DOTA_COMBATLOG_BUYBACK_VALUE = 12;
    /**
     * DOTA_COMBATLOG_ABILITY_TRIGGER = 13;
     */
    public static final int DOTA_COMBATLOG_ABILITY_TRIGGER_VALUE = 13;
    /**
     * DOTA_COMBATLOG_PLAYERSTATS = 14;
     */
    public static final int DOTA_COMBATLOG_PLAYERSTATS_VALUE = 14;
    /**
     * DOTA_COMBATLOG_MULTIKILL = 15;
     */
    public static final int DOTA_COMBATLOG_MULTIKILL_VALUE = 15;
    /**
     * DOTA_COMBATLOG_KILLSTREAK = 16;
     */
    public static final int DOTA_COMBATLOG_KILLSTREAK_VALUE = 16;
    /**
     * DOTA_COMBATLOG_TEAM_BUILDING_KILL = 17;
     */
    public static final int DOTA_COMBATLOG_TEAM_BUILDING_KILL_VALUE = 17;
    /**
     * DOTA_COMBATLOG_FIRST_BLOOD = 18;
     */
    public static final int DOTA_COMBATLOG_FIRST_BLOOD_VALUE = 18;
    /**
     * DOTA_COMBATLOG_MODIFIER_STACK_EVENT = 19;
     */
    public static final int DOTA_COMBATLOG_MODIFIER_STACK_EVENT_VALUE = 19;
    /**
     * DOTA_COMBATLOG_NEUTRAL_CAMP_STACK = 20;
     */
    public static final int DOTA_COMBATLOG_NEUTRAL_CAMP_STACK_VALUE = 20;
    /**
     * DOTA_COMBATLOG_PICKUP_RUNE = 21;
     */
    public static final int DOTA_COMBATLOG_PICKUP_RUNE_VALUE = 21;
    /**
     * DOTA_COMBATLOG_REVEALED_INVISIBLE = 22;
     */
    public static final int DOTA_COMBATLOG_REVEALED_INVISIBLE_VALUE = 22;
    /**
     * DOTA_COMBATLOG_HERO_SAVED = 23;
     */
    public static final int DOTA_COMBATLOG_HERO_SAVED_VALUE = 23;
    /**
     * DOTA_COMBATLOG_MANA_RESTORED = 24;
     */
    public static final int DOTA_COMBATLOG_MANA_RESTORED_VALUE = 24;
    /**
     * DOTA_COMBATLOG_HERO_LEVELUP = 25;
     */
    public static final int DOTA_COMBATLOG_HERO_LEVELUP_VALUE = 25;
    /**
     * DOTA_COMBATLOG_BOTTLE_HEAL_ALLY = 26;
     */
    public static final int DOTA_COMBATLOG_BOTTLE_HEAL_ALLY_VALUE = 26;
    /**
     * DOTA_COMBATLOG_ENDGAME_STATS = 27;
     */
    public static final int DOTA_COMBATLOG_ENDGAME_STATS_VALUE = 27;
    /**
     * DOTA_COMBATLOG_INTERRUPT_CHANNEL = 28;
     */
    public static final int DOTA_COMBATLOG_INTERRUPT_CHANNEL_VALUE = 28;
    /**
     * DOTA_COMBATLOG_ALLIED_GOLD = 29;
     */
    public static final int DOTA_COMBATLOG_ALLIED_GOLD_VALUE = 29;
    /**
     * DOTA_COMBATLOG_AEGIS_TAKEN = 30;
     */
    public static final int DOTA_COMBATLOG_AEGIS_TAKEN_VALUE = 30;
    /**
     * DOTA_COMBATLOG_MANA_DAMAGE = 31;
     */
    public static final int DOTA_COMBATLOG_MANA_DAMAGE_VALUE = 31;
    /**
     * DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED = 32;
     */
    public static final int DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED_VALUE = 32;
    /**
     * DOTA_COMBATLOG_UNIT_SUMMONED = 33;
     */
    public static final int DOTA_COMBATLOG_UNIT_SUMMONED_VALUE = 33;
    /**
     * DOTA_COMBATLOG_ATTACK_EVADE = 34;
     */
    public static final int DOTA_COMBATLOG_ATTACK_EVADE_VALUE = 34;
    /**
     * DOTA_COMBATLOG_TREE_CUT = 35;
     */
    public static final int DOTA_COMBATLOG_TREE_CUT_VALUE = 35;
    /**
     * DOTA_COMBATLOG_SUCCESSFUL_SCAN = 36;
     */
    public static final int DOTA_COMBATLOG_SUCCESSFUL_SCAN_VALUE = 36;
    /**
     * DOTA_COMBATLOG_END_KILLSTREAK = 37;
     */
    public static final int DOTA_COMBATLOG_END_KILLSTREAK_VALUE = 37;
    /**
     * DOTA_COMBATLOG_BLOODSTONE_CHARGE = 38;
     */
    public static final int DOTA_COMBATLOG_BLOODSTONE_CHARGE_VALUE = 38;
    /**
     * DOTA_COMBATLOG_CRITICAL_DAMAGE = 39;
     */
    public static final int DOTA_COMBATLOG_CRITICAL_DAMAGE_VALUE = 39;
    /**
     * DOTA_COMBATLOG_SPELL_ABSORB = 40;
     */
    public static final int DOTA_COMBATLOG_SPELL_ABSORB_VALUE = 40;
    /**
     * DOTA_COMBATLOG_UNIT_TELEPORTED = 41;
     */
    public static final int DOTA_COMBATLOG_UNIT_TELEPORTED_VALUE = 41;
    /**
     * DOTA_COMBATLOG_KILL_EATER_EVENT = 42;
     */
    public static final int DOTA_COMBATLOG_KILL_EATER_EVENT_VALUE = 42;
    /**
     * DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED = 43;
     */
    public static final int DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED_VALUE = 43;


    public final int getNumber() { return value; }

    public static DOTA_COMBATLOG_TYPES valueOf(int value) {
      switch (value) {
        case -1: return DOTA_COMBATLOG_INVALID;
        case 0: return DOTA_COMBATLOG_DAMAGE;
        case 1: return DOTA_COMBATLOG_HEAL;
        case 2: return DOTA_COMBATLOG_MODIFIER_ADD;
        case 3: return DOTA_COMBATLOG_MODIFIER_REMOVE;
        case 4: return DOTA_COMBATLOG_DEATH;
        case 5: return DOTA_COMBATLOG_ABILITY;
        case 6: return DOTA_COMBATLOG_ITEM;
        case 7: return DOTA_COMBATLOG_LOCATION;
        case 8: return DOTA_COMBATLOG_GOLD;
        case 9: return DOTA_COMBATLOG_GAME_STATE;
        case 10: return DOTA_COMBATLOG_XP;
        case 11: return DOTA_COMBATLOG_PURCHASE;
        case 12: return DOTA_COMBATLOG_BUYBACK;
        case 13: return DOTA_COMBATLOG_ABILITY_TRIGGER;
        case 14: return DOTA_COMBATLOG_PLAYERSTATS;
        case 15: return DOTA_COMBATLOG_MULTIKILL;
        case 16: return DOTA_COMBATLOG_KILLSTREAK;
        case 17: return DOTA_COMBATLOG_TEAM_BUILDING_KILL;
        case 18: return DOTA_COMBATLOG_FIRST_BLOOD;
        case 19: return DOTA_COMBATLOG_MODIFIER_STACK_EVENT;
        case 20: return DOTA_COMBATLOG_NEUTRAL_CAMP_STACK;
        case 21: return DOTA_COMBATLOG_PICKUP_RUNE;
        case 22: return DOTA_COMBATLOG_REVEALED_INVISIBLE;
        case 23: return DOTA_COMBATLOG_HERO_SAVED;
        case 24: return DOTA_COMBATLOG_MANA_RESTORED;
        case 25: return DOTA_COMBATLOG_HERO_LEVELUP;
        case 26: return DOTA_COMBATLOG_BOTTLE_HEAL_ALLY;
        case 27: return DOTA_COMBATLOG_ENDGAME_STATS;
        case 28: return DOTA_COMBATLOG_INTERRUPT_CHANNEL;
        case 29: return DOTA_COMBATLOG_ALLIED_GOLD;
        case 30: return DOTA_COMBATLOG_AEGIS_TAKEN;
        case 31: return DOTA_COMBATLOG_MANA_DAMAGE;
        case 32: return DOTA_COMBATLOG_PHYSICAL_DAMAGE_PREVENTED;
        case 33: return DOTA_COMBATLOG_UNIT_SUMMONED;
        case 34: return DOTA_COMBATLOG_ATTACK_EVADE;
        case 35: return DOTA_COMBATLOG_TREE_CUT;
        case 36: return DOTA_COMBATLOG_SUCCESSFUL_SCAN;
        case 37: return DOTA_COMBATLOG_END_KILLSTREAK;
        case 38: return DOTA_COMBATLOG_BLOODSTONE_CHARGE;
        case 39: return DOTA_COMBATLOG_CRITICAL_DAMAGE;
        case 40: return DOTA_COMBATLOG_SPELL_ABSORB;
        case 41: return DOTA_COMBATLOG_UNIT_TELEPORTED;
        case 42: return DOTA_COMBATLOG_KILL_EATER_EVENT;
        case 43: return DOTA_COMBATLOG_NEUTRAL_ITEM_EARNED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_COMBATLOG_TYPES findValueByNumber(int number) {
              return DOTA_COMBATLOG_TYPES.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(0);
    }

    private static final DOTA_COMBATLOG_TYPES[] VALUES = values();

    public static DOTA_COMBATLOG_TYPES valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_COMBATLOG_TYPES(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_COMBATLOG_TYPES)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_MESSAGE}
   */
  public enum DOTA_CHAT_MESSAGE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    CHAT_MESSAGE_INVALID(0, -1),
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    CHAT_MESSAGE_HERO_KILL(1, 0),
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    CHAT_MESSAGE_HERO_DENY(2, 1),
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    CHAT_MESSAGE_BARRACKS_KILL(3, 2),
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    CHAT_MESSAGE_TOWER_KILL(4, 3),
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    CHAT_MESSAGE_TOWER_DENY(5, 4),
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    CHAT_MESSAGE_FIRSTBLOOD(6, 5),
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    CHAT_MESSAGE_STREAK_KILL(7, 6),
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    CHAT_MESSAGE_BUYBACK(8, 7),
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    CHAT_MESSAGE_AEGIS(9, 8),
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    CHAT_MESSAGE_ROSHAN_KILL(10, 9),
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    CHAT_MESSAGE_COURIER_LOST(11, 10),
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    CHAT_MESSAGE_COURIER_RESPAWNED(12, 11),
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    CHAT_MESSAGE_GLYPH_USED(13, 12),
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    CHAT_MESSAGE_ITEM_PURCHASE(14, 13),
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    CHAT_MESSAGE_CONNECT(15, 14),
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    CHAT_MESSAGE_DISCONNECT(16, 15),
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT(17, 16),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING(18, 17),
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL(19, 18),
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    CHAT_MESSAGE_RECONNECT(20, 19),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    CHAT_MESSAGE_PLAYER_LEFT(21, 20),
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    CHAT_MESSAGE_SAFE_TO_LEAVE(22, 21),
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    CHAT_MESSAGE_RUNE_PICKUP(23, 22),
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    CHAT_MESSAGE_RUNE_BOTTLE(24, 23),
    /**
     * CHAT_MESSAGE_RUNE_DENY = 114;
     */
    CHAT_MESSAGE_RUNE_DENY(25, 114),
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    CHAT_MESSAGE_INTHEBAG(26, 24),
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    CHAT_MESSAGE_SECRETSHOP(27, 25),
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    CHAT_MESSAGE_ITEM_AUTOPURCHASED(28, 26),
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    CHAT_MESSAGE_ITEMS_COMBINED(29, 27),
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    CHAT_MESSAGE_SUPER_CREEPS(30, 28),
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    CHAT_MESSAGE_CANT_USE_ACTION_ITEM(31, 29),
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    CHAT_MESSAGE_CHARGES_EXHAUSTED(32, 30),
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    CHAT_MESSAGE_CANTPAUSE(33, 31),
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    CHAT_MESSAGE_NOPAUSESLEFT(34, 32),
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    CHAT_MESSAGE_CANTPAUSEYET(35, 33),
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    CHAT_MESSAGE_PAUSED(36, 34),
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    CHAT_MESSAGE_UNPAUSE_COUNTDOWN(37, 35),
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    CHAT_MESSAGE_UNPAUSED(38, 36),
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    CHAT_MESSAGE_AUTO_UNPAUSED(39, 37),
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    CHAT_MESSAGE_YOUPAUSED(40, 38),
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    CHAT_MESSAGE_CANTUNPAUSETEAM(41, 39),
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    CHAT_MESSAGE_VOICE_TEXT_BANNED(42, 41),
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME(43, 42),
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    CHAT_MESSAGE_REPORT_REMINDER(44, 43),
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    CHAT_MESSAGE_ECON_ITEM(45, 44),
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    CHAT_MESSAGE_TAUNT(46, 45),
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    CHAT_MESSAGE_RANDOM(47, 46),
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    CHAT_MESSAGE_RD_TURN(48, 47),
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    CHAT_MESSAGE_DROP_RATE_BONUS(49, 49),
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    CHAT_MESSAGE_NO_BATTLE_POINTS(50, 50),
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    CHAT_MESSAGE_DENIED_AEGIS(51, 51),
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    CHAT_MESSAGE_INFORMATIONAL(52, 52),
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    CHAT_MESSAGE_AEGIS_STOLEN(53, 53),
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    CHAT_MESSAGE_ROSHAN_CANDY(54, 54),
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    CHAT_MESSAGE_ITEM_GIFTED(55, 55),
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL(56, 56),
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED(57, 57),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED(58, 58),
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    CHAT_MESSAGE_HOLDOUT_WALL_FINISHED(59, 59),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO(60, 62),
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION(61, 63),
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    CHAT_MESSAGE_DISCONNECT_LIMITED_HERO(62, 64),
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION(63, 65),
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS(64, 66),
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE(65, 67),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    CHAT_MESSAGE_PLAYER_LEFT_AFK(66, 73),
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG(67, 74),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED(68, 75),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_AFK(69, 76),
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG(70, 77),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED(71, 78),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED(72, 79),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK(73, 80),
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED(74, 81),
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON(75, 82),
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS(76, 83),
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY(77, 84),
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    CHAT_MESSAGE_COMPENDIUM_LEVEL(78, 85),
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    CHAT_MESSAGE_VICTORY_PREDICTION_STREAK(79, 86),
    /**
     * CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87;
     */
    CHAT_MESSAGE_ASSASSIN_ANNOUNCE(80, 87),
    /**
     * CHAT_MESSAGE_ASSASSIN_SUCCESS = 88;
     */
    CHAT_MESSAGE_ASSASSIN_SUCCESS(81, 88),
    /**
     * CHAT_MESSAGE_ASSASSIN_DENIED = 89;
     */
    CHAT_MESSAGE_ASSASSIN_DENIED(82, 89),
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90;
     */
    CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM(83, 90),
    /**
     * CHAT_MESSAGE_EFFIGY_KILL = 91;
     */
    CHAT_MESSAGE_EFFIGY_KILL(84, 91),
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92;
     */
    CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW(85, 92),
    /**
     * CHAT_MESSAGE_YEAR_BEAST_KILLED = 93;
     */
    CHAT_MESSAGE_YEAR_BEAST_KILLED(86, 93),
    /**
     * CHAT_MESSAGE_PAUSE_COUNTDOWN = 94;
     */
    CHAT_MESSAGE_PAUSE_COUNTDOWN(87, 94),
    /**
     * CHAT_MESSAGE_COINS_WAGERED = 95;
     */
    CHAT_MESSAGE_COINS_WAGERED(88, 95),
    /**
     * CHAT_MESSAGE_HERO_NOMINATED_BAN = 96;
     */
    CHAT_MESSAGE_HERO_NOMINATED_BAN(89, 96),
    /**
     * CHAT_MESSAGE_HERO_BANNED = 97;
     */
    CHAT_MESSAGE_HERO_BANNED(90, 97),
    /**
     * CHAT_MESSAGE_HERO_BAN_COUNT = 98;
     */
    CHAT_MESSAGE_HERO_BAN_COUNT(91, 98),
    /**
     * CHAT_MESSAGE_RIVER_PAINTED = 99;
     */
    CHAT_MESSAGE_RIVER_PAINTED(92, 99),
    /**
     * CHAT_MESSAGE_SCAN_USED = 100;
     */
    CHAT_MESSAGE_SCAN_USED(93, 100),
    /**
     * CHAT_MESSAGE_SHRINE_KILLED = 101;
     */
    CHAT_MESSAGE_SHRINE_KILLED(94, 101),
    /**
     * CHAT_MESSAGE_WAGER_TOKEN_SPENT = 102;
     */
    CHAT_MESSAGE_WAGER_TOKEN_SPENT(95, 102),
    /**
     * CHAT_MESSAGE_RANK_WAGER = 103;
     */
    CHAT_MESSAGE_RANK_WAGER(96, 103),
    /**
     * CHAT_MESSAGE_NEW_PLAYER_REMINDER = 104;
     */
    CHAT_MESSAGE_NEW_PLAYER_REMINDER(97, 104),
    /**
     * CHAT_MESSAGE_OBSERVER_WARD_KILLED = 105;
     */
    CHAT_MESSAGE_OBSERVER_WARD_KILLED(98, 105),
    /**
     * CHAT_MESSAGE_SENTRY_WARD_KILLED = 106;
     */
    CHAT_MESSAGE_SENTRY_WARD_KILLED(99, 106),
    /**
     * CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH = 107;
     */
    CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH(100, 107),
    /**
     * CHAT_MESSAGE_HERO_CHOICE_INVALID = 108;
     */
    CHAT_MESSAGE_HERO_CHOICE_INVALID(101, 108),
    /**
     * CHAT_MESSAGE_BOUNTY = 109;
     */
    CHAT_MESSAGE_BOUNTY(102, 109),
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_START = 110;
     */
    CHAT_MESSAGE_ABILITY_DRAFT_START(103, 110),
    /**
     * CHAT_MESSAGE_HERO_FOUND_CANDY = 111;
     */
    CHAT_MESSAGE_HERO_FOUND_CANDY(104, 111),
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED = 112;
     */
    CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED(105, 112),
    /**
     * CHAT_MESSAGE_PRIVATE_COACH_CONNECTED = 113;
     */
    CHAT_MESSAGE_PRIVATE_COACH_CONNECTED(106, 113),
    /**
     * CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY = 115;
     */
    CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY(107, 115),
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN = 116;
     */
    CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN(108, 116),
    /**
     * CHAT_MESSAGE_MINIBOSS_KILL = 117;
     */
    CHAT_MESSAGE_MINIBOSS_KILL(109, 117),
    /**
     * CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT = 118;
     */
    CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT(110, 118),
    /**
     * CHAT_MESSAGE_BANNER_PLANTED = 119;
     */
    CHAT_MESSAGE_BANNER_PLANTED(111, 119),
    ;

    /**
     * CHAT_MESSAGE_INVALID = -1;
     */
    public static final int CHAT_MESSAGE_INVALID_VALUE = -1;
    /**
     * CHAT_MESSAGE_HERO_KILL = 0;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_VALUE = 0;
    /**
     * CHAT_MESSAGE_HERO_DENY = 1;
     */
    public static final int CHAT_MESSAGE_HERO_DENY_VALUE = 1;
    /**
     * CHAT_MESSAGE_BARRACKS_KILL = 2;
     */
    public static final int CHAT_MESSAGE_BARRACKS_KILL_VALUE = 2;
    /**
     * CHAT_MESSAGE_TOWER_KILL = 3;
     */
    public static final int CHAT_MESSAGE_TOWER_KILL_VALUE = 3;
    /**
     * CHAT_MESSAGE_TOWER_DENY = 4;
     */
    public static final int CHAT_MESSAGE_TOWER_DENY_VALUE = 4;
    /**
     * CHAT_MESSAGE_FIRSTBLOOD = 5;
     */
    public static final int CHAT_MESSAGE_FIRSTBLOOD_VALUE = 5;
    /**
     * CHAT_MESSAGE_STREAK_KILL = 6;
     */
    public static final int CHAT_MESSAGE_STREAK_KILL_VALUE = 6;
    /**
     * CHAT_MESSAGE_BUYBACK = 7;
     */
    public static final int CHAT_MESSAGE_BUYBACK_VALUE = 7;
    /**
     * CHAT_MESSAGE_AEGIS = 8;
     */
    public static final int CHAT_MESSAGE_AEGIS_VALUE = 8;
    /**
     * CHAT_MESSAGE_ROSHAN_KILL = 9;
     */
    public static final int CHAT_MESSAGE_ROSHAN_KILL_VALUE = 9;
    /**
     * CHAT_MESSAGE_COURIER_LOST = 10;
     */
    public static final int CHAT_MESSAGE_COURIER_LOST_VALUE = 10;
    /**
     * CHAT_MESSAGE_COURIER_RESPAWNED = 11;
     */
    public static final int CHAT_MESSAGE_COURIER_RESPAWNED_VALUE = 11;
    /**
     * CHAT_MESSAGE_GLYPH_USED = 12;
     */
    public static final int CHAT_MESSAGE_GLYPH_USED_VALUE = 12;
    /**
     * CHAT_MESSAGE_ITEM_PURCHASE = 13;
     */
    public static final int CHAT_MESSAGE_ITEM_PURCHASE_VALUE = 13;
    /**
     * CHAT_MESSAGE_CONNECT = 14;
     */
    public static final int CHAT_MESSAGE_CONNECT_VALUE = 14;
    /**
     * CHAT_MESSAGE_DISCONNECT = 15;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_VALUE = 15;
    /**
     * CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT = 16;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT_VALUE = 16;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING = 17;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_VALUE = 17;
    /**
     * CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL = 18;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL_VALUE = 18;
    /**
     * CHAT_MESSAGE_RECONNECT = 19;
     */
    public static final int CHAT_MESSAGE_RECONNECT_VALUE = 19;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT = 20;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_VALUE = 20;
    /**
     * CHAT_MESSAGE_SAFE_TO_LEAVE = 21;
     */
    public static final int CHAT_MESSAGE_SAFE_TO_LEAVE_VALUE = 21;
    /**
     * CHAT_MESSAGE_RUNE_PICKUP = 22;
     */
    public static final int CHAT_MESSAGE_RUNE_PICKUP_VALUE = 22;
    /**
     * CHAT_MESSAGE_RUNE_BOTTLE = 23;
     */
    public static final int CHAT_MESSAGE_RUNE_BOTTLE_VALUE = 23;
    /**
     * CHAT_MESSAGE_RUNE_DENY = 114;
     */
    public static final int CHAT_MESSAGE_RUNE_DENY_VALUE = 114;
    /**
     * CHAT_MESSAGE_INTHEBAG = 24;
     */
    public static final int CHAT_MESSAGE_INTHEBAG_VALUE = 24;
    /**
     * CHAT_MESSAGE_SECRETSHOP = 25;
     */
    public static final int CHAT_MESSAGE_SECRETSHOP_VALUE = 25;
    /**
     * CHAT_MESSAGE_ITEM_AUTOPURCHASED = 26;
     */
    public static final int CHAT_MESSAGE_ITEM_AUTOPURCHASED_VALUE = 26;
    /**
     * CHAT_MESSAGE_ITEMS_COMBINED = 27;
     */
    public static final int CHAT_MESSAGE_ITEMS_COMBINED_VALUE = 27;
    /**
     * CHAT_MESSAGE_SUPER_CREEPS = 28;
     */
    public static final int CHAT_MESSAGE_SUPER_CREEPS_VALUE = 28;
    /**
     * CHAT_MESSAGE_CANT_USE_ACTION_ITEM = 29;
     */
    public static final int CHAT_MESSAGE_CANT_USE_ACTION_ITEM_VALUE = 29;
    /**
     * CHAT_MESSAGE_CHARGES_EXHAUSTED = 30;
     */
    public static final int CHAT_MESSAGE_CHARGES_EXHAUSTED_VALUE = 30;
    /**
     * CHAT_MESSAGE_CANTPAUSE = 31;
     */
    public static final int CHAT_MESSAGE_CANTPAUSE_VALUE = 31;
    /**
     * CHAT_MESSAGE_NOPAUSESLEFT = 32;
     */
    public static final int CHAT_MESSAGE_NOPAUSESLEFT_VALUE = 32;
    /**
     * CHAT_MESSAGE_CANTPAUSEYET = 33;
     */
    public static final int CHAT_MESSAGE_CANTPAUSEYET_VALUE = 33;
    /**
     * CHAT_MESSAGE_PAUSED = 34;
     */
    public static final int CHAT_MESSAGE_PAUSED_VALUE = 34;
    /**
     * CHAT_MESSAGE_UNPAUSE_COUNTDOWN = 35;
     */
    public static final int CHAT_MESSAGE_UNPAUSE_COUNTDOWN_VALUE = 35;
    /**
     * CHAT_MESSAGE_UNPAUSED = 36;
     */
    public static final int CHAT_MESSAGE_UNPAUSED_VALUE = 36;
    /**
     * CHAT_MESSAGE_AUTO_UNPAUSED = 37;
     */
    public static final int CHAT_MESSAGE_AUTO_UNPAUSED_VALUE = 37;
    /**
     * CHAT_MESSAGE_YOUPAUSED = 38;
     */
    public static final int CHAT_MESSAGE_YOUPAUSED_VALUE = 38;
    /**
     * CHAT_MESSAGE_CANTUNPAUSETEAM = 39;
     */
    public static final int CHAT_MESSAGE_CANTUNPAUSETEAM_VALUE = 39;
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED = 41;
     */
    public static final int CHAT_MESSAGE_VOICE_TEXT_BANNED_VALUE = 41;
    /**
     * CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME = 42;
     */
    public static final int CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME_VALUE = 42;
    /**
     * CHAT_MESSAGE_REPORT_REMINDER = 43;
     */
    public static final int CHAT_MESSAGE_REPORT_REMINDER_VALUE = 43;
    /**
     * CHAT_MESSAGE_ECON_ITEM = 44;
     */
    public static final int CHAT_MESSAGE_ECON_ITEM_VALUE = 44;
    /**
     * CHAT_MESSAGE_TAUNT = 45;
     */
    public static final int CHAT_MESSAGE_TAUNT_VALUE = 45;
    /**
     * CHAT_MESSAGE_RANDOM = 46;
     */
    public static final int CHAT_MESSAGE_RANDOM_VALUE = 46;
    /**
     * CHAT_MESSAGE_RD_TURN = 47;
     */
    public static final int CHAT_MESSAGE_RD_TURN_VALUE = 47;
    /**
     * CHAT_MESSAGE_DROP_RATE_BONUS = 49;
     */
    public static final int CHAT_MESSAGE_DROP_RATE_BONUS_VALUE = 49;
    /**
     * CHAT_MESSAGE_NO_BATTLE_POINTS = 50;
     */
    public static final int CHAT_MESSAGE_NO_BATTLE_POINTS_VALUE = 50;
    /**
     * CHAT_MESSAGE_DENIED_AEGIS = 51;
     */
    public static final int CHAT_MESSAGE_DENIED_AEGIS_VALUE = 51;
    /**
     * CHAT_MESSAGE_INFORMATIONAL = 52;
     */
    public static final int CHAT_MESSAGE_INFORMATIONAL_VALUE = 52;
    /**
     * CHAT_MESSAGE_AEGIS_STOLEN = 53;
     */
    public static final int CHAT_MESSAGE_AEGIS_STOLEN_VALUE = 53;
    /**
     * CHAT_MESSAGE_ROSHAN_CANDY = 54;
     */
    public static final int CHAT_MESSAGE_ROSHAN_CANDY_VALUE = 54;
    /**
     * CHAT_MESSAGE_ITEM_GIFTED = 55;
     */
    public static final int CHAT_MESSAGE_ITEM_GIFTED_VALUE = 55;
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL = 56;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL_VALUE = 56;
    /**
     * CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED = 57;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED_VALUE = 57;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED = 58;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED_VALUE = 58;
    /**
     * CHAT_MESSAGE_HOLDOUT_WALL_FINISHED = 59;
     */
    public static final int CHAT_MESSAGE_HOLDOUT_WALL_FINISHED_VALUE = 59;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO = 62;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO_VALUE = 62;
    /**
     * CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION = 63;
     */
    public static final int CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION_VALUE = 63;
    /**
     * CHAT_MESSAGE_DISCONNECT_LIMITED_HERO = 64;
     */
    public static final int CHAT_MESSAGE_DISCONNECT_LIMITED_HERO_VALUE = 64;
    /**
     * CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION = 65;
     */
    public static final int CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION_VALUE = 65;
    /**
     * CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS = 66;
     */
    public static final int CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS_VALUE = 66;
    /**
     * CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE = 67;
     */
    public static final int CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE_VALUE = 67;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_AFK = 73;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_AFK_VALUE = 73;
    /**
     * CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG = 74;
     */
    public static final int CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG_VALUE = 74;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED = 75;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_VALUE = 75;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_AFK = 76;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_AFK_VALUE = 76;
    /**
     * CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG = 77;
     */
    public static final int CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG_VALUE = 77;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED = 78;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_VALUE = 78;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED = 79;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED_VALUE = 79;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK = 80;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_VALUE = 80;
    /**
     * CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED = 81;
     */
    public static final int CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED_VALUE = 81;
    /**
     * CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON = 82;
     */
    public static final int CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON_VALUE = 82;
    /**
     * CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS = 83;
     */
    public static final int CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS_VALUE = 83;
    /**
     * CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY = 84;
     */
    public static final int CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY_VALUE = 84;
    /**
     * CHAT_MESSAGE_COMPENDIUM_LEVEL = 85;
     */
    public static final int CHAT_MESSAGE_COMPENDIUM_LEVEL_VALUE = 85;
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_STREAK = 86;
     */
    public static final int CHAT_MESSAGE_VICTORY_PREDICTION_STREAK_VALUE = 86;
    /**
     * CHAT_MESSAGE_ASSASSIN_ANNOUNCE = 87;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_ANNOUNCE_VALUE = 87;
    /**
     * CHAT_MESSAGE_ASSASSIN_SUCCESS = 88;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_SUCCESS_VALUE = 88;
    /**
     * CHAT_MESSAGE_ASSASSIN_DENIED = 89;
     */
    public static final int CHAT_MESSAGE_ASSASSIN_DENIED_VALUE = 89;
    /**
     * CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM = 90;
     */
    public static final int CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM_VALUE = 90;
    /**
     * CHAT_MESSAGE_EFFIGY_KILL = 91;
     */
    public static final int CHAT_MESSAGE_EFFIGY_KILL_VALUE = 91;
    /**
     * CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW = 92;
     */
    public static final int CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW_VALUE = 92;
    /**
     * CHAT_MESSAGE_YEAR_BEAST_KILLED = 93;
     */
    public static final int CHAT_MESSAGE_YEAR_BEAST_KILLED_VALUE = 93;
    /**
     * CHAT_MESSAGE_PAUSE_COUNTDOWN = 94;
     */
    public static final int CHAT_MESSAGE_PAUSE_COUNTDOWN_VALUE = 94;
    /**
     * CHAT_MESSAGE_COINS_WAGERED = 95;
     */
    public static final int CHAT_MESSAGE_COINS_WAGERED_VALUE = 95;
    /**
     * CHAT_MESSAGE_HERO_NOMINATED_BAN = 96;
     */
    public static final int CHAT_MESSAGE_HERO_NOMINATED_BAN_VALUE = 96;
    /**
     * CHAT_MESSAGE_HERO_BANNED = 97;
     */
    public static final int CHAT_MESSAGE_HERO_BANNED_VALUE = 97;
    /**
     * CHAT_MESSAGE_HERO_BAN_COUNT = 98;
     */
    public static final int CHAT_MESSAGE_HERO_BAN_COUNT_VALUE = 98;
    /**
     * CHAT_MESSAGE_RIVER_PAINTED = 99;
     */
    public static final int CHAT_MESSAGE_RIVER_PAINTED_VALUE = 99;
    /**
     * CHAT_MESSAGE_SCAN_USED = 100;
     */
    public static final int CHAT_MESSAGE_SCAN_USED_VALUE = 100;
    /**
     * CHAT_MESSAGE_SHRINE_KILLED = 101;
     */
    public static final int CHAT_MESSAGE_SHRINE_KILLED_VALUE = 101;
    /**
     * CHAT_MESSAGE_WAGER_TOKEN_SPENT = 102;
     */
    public static final int CHAT_MESSAGE_WAGER_TOKEN_SPENT_VALUE = 102;
    /**
     * CHAT_MESSAGE_RANK_WAGER = 103;
     */
    public static final int CHAT_MESSAGE_RANK_WAGER_VALUE = 103;
    /**
     * CHAT_MESSAGE_NEW_PLAYER_REMINDER = 104;
     */
    public static final int CHAT_MESSAGE_NEW_PLAYER_REMINDER_VALUE = 104;
    /**
     * CHAT_MESSAGE_OBSERVER_WARD_KILLED = 105;
     */
    public static final int CHAT_MESSAGE_OBSERVER_WARD_KILLED_VALUE = 105;
    /**
     * CHAT_MESSAGE_SENTRY_WARD_KILLED = 106;
     */
    public static final int CHAT_MESSAGE_SENTRY_WARD_KILLED_VALUE = 106;
    /**
     * CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH = 107;
     */
    public static final int CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH_VALUE = 107;
    /**
     * CHAT_MESSAGE_HERO_CHOICE_INVALID = 108;
     */
    public static final int CHAT_MESSAGE_HERO_CHOICE_INVALID_VALUE = 108;
    /**
     * CHAT_MESSAGE_BOUNTY = 109;
     */
    public static final int CHAT_MESSAGE_BOUNTY_VALUE = 109;
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_START = 110;
     */
    public static final int CHAT_MESSAGE_ABILITY_DRAFT_START_VALUE = 110;
    /**
     * CHAT_MESSAGE_HERO_FOUND_CANDY = 111;
     */
    public static final int CHAT_MESSAGE_HERO_FOUND_CANDY_VALUE = 111;
    /**
     * CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED = 112;
     */
    public static final int CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED_VALUE = 112;
    /**
     * CHAT_MESSAGE_PRIVATE_COACH_CONNECTED = 113;
     */
    public static final int CHAT_MESSAGE_PRIVATE_COACH_CONNECTED_VALUE = 113;
    /**
     * CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY = 115;
     */
    public static final int CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY_VALUE = 115;
    /**
     * CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN = 116;
     */
    public static final int CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN_VALUE = 116;
    /**
     * CHAT_MESSAGE_MINIBOSS_KILL = 117;
     */
    public static final int CHAT_MESSAGE_MINIBOSS_KILL_VALUE = 117;
    /**
     * CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT = 118;
     */
    public static final int CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT_VALUE = 118;
    /**
     * CHAT_MESSAGE_BANNER_PLANTED = 119;
     */
    public static final int CHAT_MESSAGE_BANNER_PLANTED_VALUE = 119;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_MESSAGE valueOf(int value) {
      switch (value) {
        case -1: return CHAT_MESSAGE_INVALID;
        case 0: return CHAT_MESSAGE_HERO_KILL;
        case 1: return CHAT_MESSAGE_HERO_DENY;
        case 2: return CHAT_MESSAGE_BARRACKS_KILL;
        case 3: return CHAT_MESSAGE_TOWER_KILL;
        case 4: return CHAT_MESSAGE_TOWER_DENY;
        case 5: return CHAT_MESSAGE_FIRSTBLOOD;
        case 6: return CHAT_MESSAGE_STREAK_KILL;
        case 7: return CHAT_MESSAGE_BUYBACK;
        case 8: return CHAT_MESSAGE_AEGIS;
        case 9: return CHAT_MESSAGE_ROSHAN_KILL;
        case 10: return CHAT_MESSAGE_COURIER_LOST;
        case 11: return CHAT_MESSAGE_COURIER_RESPAWNED;
        case 12: return CHAT_MESSAGE_GLYPH_USED;
        case 13: return CHAT_MESSAGE_ITEM_PURCHASE;
        case 14: return CHAT_MESSAGE_CONNECT;
        case 15: return CHAT_MESSAGE_DISCONNECT;
        case 16: return CHAT_MESSAGE_DISCONNECT_WAIT_FOR_RECONNECT;
        case 17: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING;
        case 18: return CHAT_MESSAGE_DISCONNECT_TIME_REMAINING_PLURAL;
        case 19: return CHAT_MESSAGE_RECONNECT;
        case 20: return CHAT_MESSAGE_PLAYER_LEFT;
        case 21: return CHAT_MESSAGE_SAFE_TO_LEAVE;
        case 22: return CHAT_MESSAGE_RUNE_PICKUP;
        case 23: return CHAT_MESSAGE_RUNE_BOTTLE;
        case 114: return CHAT_MESSAGE_RUNE_DENY;
        case 24: return CHAT_MESSAGE_INTHEBAG;
        case 25: return CHAT_MESSAGE_SECRETSHOP;
        case 26: return CHAT_MESSAGE_ITEM_AUTOPURCHASED;
        case 27: return CHAT_MESSAGE_ITEMS_COMBINED;
        case 28: return CHAT_MESSAGE_SUPER_CREEPS;
        case 29: return CHAT_MESSAGE_CANT_USE_ACTION_ITEM;
        case 30: return CHAT_MESSAGE_CHARGES_EXHAUSTED;
        case 31: return CHAT_MESSAGE_CANTPAUSE;
        case 32: return CHAT_MESSAGE_NOPAUSESLEFT;
        case 33: return CHAT_MESSAGE_CANTPAUSEYET;
        case 34: return CHAT_MESSAGE_PAUSED;
        case 35: return CHAT_MESSAGE_UNPAUSE_COUNTDOWN;
        case 36: return CHAT_MESSAGE_UNPAUSED;
        case 37: return CHAT_MESSAGE_AUTO_UNPAUSED;
        case 38: return CHAT_MESSAGE_YOUPAUSED;
        case 39: return CHAT_MESSAGE_CANTUNPAUSETEAM;
        case 41: return CHAT_MESSAGE_VOICE_TEXT_BANNED;
        case 42: return CHAT_MESSAGE_SPECTATORS_WATCHING_THIS_GAME;
        case 43: return CHAT_MESSAGE_REPORT_REMINDER;
        case 44: return CHAT_MESSAGE_ECON_ITEM;
        case 45: return CHAT_MESSAGE_TAUNT;
        case 46: return CHAT_MESSAGE_RANDOM;
        case 47: return CHAT_MESSAGE_RD_TURN;
        case 49: return CHAT_MESSAGE_DROP_RATE_BONUS;
        case 50: return CHAT_MESSAGE_NO_BATTLE_POINTS;
        case 51: return CHAT_MESSAGE_DENIED_AEGIS;
        case 52: return CHAT_MESSAGE_INFORMATIONAL;
        case 53: return CHAT_MESSAGE_AEGIS_STOLEN;
        case 54: return CHAT_MESSAGE_ROSHAN_CANDY;
        case 55: return CHAT_MESSAGE_ITEM_GIFTED;
        case 56: return CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL;
        case 57: return CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYED;
        case 58: return CHAT_MESSAGE_HOLDOUT_WALL_DESTROYED;
        case 59: return CHAT_MESSAGE_HOLDOUT_WALL_FINISHED;
        case 62: return CHAT_MESSAGE_PLAYER_LEFT_LIMITED_HERO;
        case 63: return CHAT_MESSAGE_ABANDON_LIMITED_HERO_EXPLANATION;
        case 64: return CHAT_MESSAGE_DISCONNECT_LIMITED_HERO;
        case 65: return CHAT_MESSAGE_LOW_PRIORITY_COMPLETED_EXPLANATION;
        case 66: return CHAT_MESSAGE_RECRUITMENT_DROP_RATE_BONUS;
        case 67: return CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTER_ACTIVE;
        case 73: return CHAT_MESSAGE_PLAYER_LEFT_AFK;
        case 74: return CHAT_MESSAGE_PLAYER_LEFT_DISCONNECTED_TOO_LONG;
        case 75: return CHAT_MESSAGE_PLAYER_ABANDONED;
        case 76: return CHAT_MESSAGE_PLAYER_ABANDONED_AFK;
        case 77: return CHAT_MESSAGE_PLAYER_ABANDONED_DISCONNECTED_TOO_LONG;
        case 78: return CHAT_MESSAGE_WILL_NOT_BE_SCORED;
        case 79: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_RANKED;
        case 80: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK;
        case 81: return CHAT_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RANKED;
        case 82: return CHAT_MESSAGE_CAN_QUIT_WITHOUT_ABANDON;
        case 83: return CHAT_MESSAGE_RANKED_GAME_STILL_SCORED_LEAVERS_GET_LOSS;
        case 84: return CHAT_MESSAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_PARTY;
        case 85: return CHAT_MESSAGE_COMPENDIUM_LEVEL;
        case 86: return CHAT_MESSAGE_VICTORY_PREDICTION_STREAK;
        case 87: return CHAT_MESSAGE_ASSASSIN_ANNOUNCE;
        case 88: return CHAT_MESSAGE_ASSASSIN_SUCCESS;
        case 89: return CHAT_MESSAGE_ASSASSIN_DENIED;
        case 90: return CHAT_MESSAGE_VICTORY_PREDICTION_SINGLE_USER_CONFIRM;
        case 91: return CHAT_MESSAGE_EFFIGY_KILL;
        case 92: return CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW;
        case 93: return CHAT_MESSAGE_YEAR_BEAST_KILLED;
        case 94: return CHAT_MESSAGE_PAUSE_COUNTDOWN;
        case 95: return CHAT_MESSAGE_COINS_WAGERED;
        case 96: return CHAT_MESSAGE_HERO_NOMINATED_BAN;
        case 97: return CHAT_MESSAGE_HERO_BANNED;
        case 98: return CHAT_MESSAGE_HERO_BAN_COUNT;
        case 99: return CHAT_MESSAGE_RIVER_PAINTED;
        case 100: return CHAT_MESSAGE_SCAN_USED;
        case 101: return CHAT_MESSAGE_SHRINE_KILLED;
        case 102: return CHAT_MESSAGE_WAGER_TOKEN_SPENT;
        case 103: return CHAT_MESSAGE_RANK_WAGER;
        case 104: return CHAT_MESSAGE_NEW_PLAYER_REMINDER;
        case 105: return CHAT_MESSAGE_OBSERVER_WARD_KILLED;
        case 106: return CHAT_MESSAGE_SENTRY_WARD_KILLED;
        case 107: return CHAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH;
        case 108: return CHAT_MESSAGE_HERO_CHOICE_INVALID;
        case 109: return CHAT_MESSAGE_BOUNTY;
        case 110: return CHAT_MESSAGE_ABILITY_DRAFT_START;
        case 111: return CHAT_MESSAGE_HERO_FOUND_CANDY;
        case 112: return CHAT_MESSAGE_ABILITY_DRAFT_RANDOMED;
        case 113: return CHAT_MESSAGE_PRIVATE_COACH_CONNECTED;
        case 115: return CHAT_MESSAGE_CANT_PAUSE_TOO_EARLY;
        case 116: return CHAT_MESSAGE_HERO_KILL_WITH_PENGUIN;
        case 117: return CHAT_MESSAGE_MINIBOSS_KILL;
        case 118: return CHAT_MESSAGE_PLAYER_IN_GAME_BAN_TEXT;
        case 119: return CHAT_MESSAGE_BANNER_PLANTED;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_MESSAGE findValueByNumber(int number) {
              return DOTA_CHAT_MESSAGE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(1);
    }

    private static final DOTA_CHAT_MESSAGE[] VALUES = values();

    public static DOTA_CHAT_MESSAGE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_MESSAGE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_MESSAGE)
  }

  /**
   * Protobuf enum {@code DOTA_NO_BATTLE_POINTS_REASONS}
   */
  public enum DOTA_NO_BATTLE_POINTS_REASONS
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    NO_BATTLE_POINTS_WRONG_LOBBY_TYPE(0, 1),
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    NO_BATTLE_POINTS_PRACTICE_BOTS(1, 2),
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    NO_BATTLE_POINTS_CHEATS_ENABLED(2, 3),
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    NO_BATTLE_POINTS_LOW_PRIORITY(3, 4),
    ;

    /**
     * NO_BATTLE_POINTS_WRONG_LOBBY_TYPE = 1;
     */
    public static final int NO_BATTLE_POINTS_WRONG_LOBBY_TYPE_VALUE = 1;
    /**
     * NO_BATTLE_POINTS_PRACTICE_BOTS = 2;
     */
    public static final int NO_BATTLE_POINTS_PRACTICE_BOTS_VALUE = 2;
    /**
     * NO_BATTLE_POINTS_CHEATS_ENABLED = 3;
     */
    public static final int NO_BATTLE_POINTS_CHEATS_ENABLED_VALUE = 3;
    /**
     * NO_BATTLE_POINTS_LOW_PRIORITY = 4;
     */
    public static final int NO_BATTLE_POINTS_LOW_PRIORITY_VALUE = 4;


    public final int getNumber() { return value; }

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(int value) {
      switch (value) {
        case 1: return NO_BATTLE_POINTS_WRONG_LOBBY_TYPE;
        case 2: return NO_BATTLE_POINTS_PRACTICE_BOTS;
        case 3: return NO_BATTLE_POINTS_CHEATS_ENABLED;
        case 4: return NO_BATTLE_POINTS_LOW_PRIORITY;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_NO_BATTLE_POINTS_REASONS findValueByNumber(int number) {
              return DOTA_NO_BATTLE_POINTS_REASONS.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(2);
    }

    private static final DOTA_NO_BATTLE_POINTS_REASONS[] VALUES = values();

    public static DOTA_NO_BATTLE_POINTS_REASONS valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_NO_BATTLE_POINTS_REASONS(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_NO_BATTLE_POINTS_REASONS)
  }

  /**
   * Protobuf enum {@code DOTA_REPLAY_STATE_EVENT}
   */
  public enum DOTA_REPLAY_STATE_EVENT
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_REPLAY_STATE_EVENT_GAME_START = 1;
     */
    DOTA_REPLAY_STATE_EVENT_GAME_START(0, 1),
    /**
     * DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2;
     */
    DOTA_REPLAY_STATE_EVENT_STARTING_HORN(1, 2),
    /**
     * DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3;
     */
    DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD(2, 3),
    /**
     * DOTA_REPLAY_STATE_EVENT_SHOWCASE = 4;
     */
    DOTA_REPLAY_STATE_EVENT_SHOWCASE(3, 4),
    /**
     * DOTA_REPLAY_STATE_EVENT_POST_GAME = 5;
     */
    DOTA_REPLAY_STATE_EVENT_POST_GAME(4, 5),
    /**
     * DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP = 6;
     */
    DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP(5, 6),
    ;

    /**
     * DOTA_REPLAY_STATE_EVENT_GAME_START = 1;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_GAME_START_VALUE = 1;
    /**
     * DOTA_REPLAY_STATE_EVENT_STARTING_HORN = 2;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_STARTING_HORN_VALUE = 2;
    /**
     * DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD = 3;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD_VALUE = 3;
    /**
     * DOTA_REPLAY_STATE_EVENT_SHOWCASE = 4;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_SHOWCASE_VALUE = 4;
    /**
     * DOTA_REPLAY_STATE_EVENT_POST_GAME = 5;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_POST_GAME_VALUE = 5;
    /**
     * DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP = 6;
     */
    public static final int DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP_VALUE = 6;


    public final int getNumber() { return value; }

    public static DOTA_REPLAY_STATE_EVENT valueOf(int value) {
      switch (value) {
        case 1: return DOTA_REPLAY_STATE_EVENT_GAME_START;
        case 2: return DOTA_REPLAY_STATE_EVENT_STARTING_HORN;
        case 3: return DOTA_REPLAY_STATE_EVENT_FIRST_BLOOD;
        case 4: return DOTA_REPLAY_STATE_EVENT_SHOWCASE;
        case 5: return DOTA_REPLAY_STATE_EVENT_POST_GAME;
        case 6: return DOTA_REPLAY_STATE_EVENT_WAIT_FOR_MAP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_REPLAY_STATE_EVENT findValueByNumber(int number) {
              return DOTA_REPLAY_STATE_EVENT.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(3);
    }

    private static final DOTA_REPLAY_STATE_EVENT[] VALUES = values();

    public static DOTA_REPLAY_STATE_EVENT valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_REPLAY_STATE_EVENT(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_REPLAY_STATE_EVENT)
  }

  /**
   * Protobuf enum {@code DOTA_CHAT_INFORMATIONAL}
   */
  public enum DOTA_CHAT_INFORMATIONAL
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    INFO_COOP_BATTLE_POINTS_RULES(0, 1),
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    INFO_FROSTIVUS_ABANDON_REMINDER(1, 2),
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    INFO_RANKED_REMINDER(2, 3),
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER(3, 4),
    /**
     * INFO_CUSTOM_GAME_PENALTY_REMINDER = 5;
     */
    INFO_CUSTOM_GAME_PENALTY_REMINDER(4, 5),
    ;

    /**
     * INFO_COOP_BATTLE_POINTS_RULES = 1;
     */
    public static final int INFO_COOP_BATTLE_POINTS_RULES_VALUE = 1;
    /**
     * INFO_FROSTIVUS_ABANDON_REMINDER = 2;
     */
    public static final int INFO_FROSTIVUS_ABANDON_REMINDER_VALUE = 2;
    /**
     * INFO_RANKED_REMINDER = 3;
     */
    public static final int INFO_RANKED_REMINDER_VALUE = 3;
    /**
     * INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER = 4;
     */
    public static final int INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER_VALUE = 4;
    /**
     * INFO_CUSTOM_GAME_PENALTY_REMINDER = 5;
     */
    public static final int INFO_CUSTOM_GAME_PENALTY_REMINDER_VALUE = 5;


    public final int getNumber() { return value; }

    public static DOTA_CHAT_INFORMATIONAL valueOf(int value) {
      switch (value) {
        case 1: return INFO_COOP_BATTLE_POINTS_RULES;
        case 2: return INFO_FROSTIVUS_ABANDON_REMINDER;
        case 3: return INFO_RANKED_REMINDER;
        case 4: return INFO_COOP_LOW_PRIORITY_PASSIVE_REMINDER;
        case 5: return INFO_CUSTOM_GAME_PENALTY_REMINDER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_CHAT_INFORMATIONAL findValueByNumber(int number) {
              return DOTA_CHAT_INFORMATIONAL.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(4);
    }

    private static final DOTA_CHAT_INFORMATIONAL[] VALUES = values();

    public static DOTA_CHAT_INFORMATIONAL valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_CHAT_INFORMATIONAL(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_CHAT_INFORMATIONAL)
  }

  /**
   * Protobuf enum {@code DOTA_ABILITY_PING_TYPE}
   */
  public enum DOTA_ABILITY_PING_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ABILITY_PING_READY = 1;
     */
    ABILITY_PING_READY(0, 1),
    /**
     * ABILITY_PING_MANA = 2;
     */
    ABILITY_PING_MANA(1, 2),
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    ABILITY_PING_COOLDOWN(2, 3),
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    ABILITY_PING_ENEMY(3, 4),
    /**
     * ABILITY_PING_UNLEARNED = 5;
     */
    ABILITY_PING_UNLEARNED(4, 5),
    /**
     * ABILITY_PING_INBACKPACK = 6;
     */
    ABILITY_PING_INBACKPACK(5, 6),
    /**
     * ABILITY_PING_INSTASH = 7;
     */
    ABILITY_PING_INSTASH(6, 7),
    /**
     * ABILITY_PING_ONCOURIER = 8;
     */
    ABILITY_PING_ONCOURIER(7, 8),
    /**
     * ABILITY_PING_ALLY = 9;
     */
    ABILITY_PING_ALLY(8, 9),
    /**
     * ABILITY_PING_LEARN_READY = 10;
     */
    ABILITY_PING_LEARN_READY(9, 10),
    /**
     * ABILITY_PING_WILL_LEARN = 11;
     */
    ABILITY_PING_WILL_LEARN(10, 11),
    /**
     * ABILITY_PING_FUTURE_LEARN = 12;
     */
    ABILITY_PING_FUTURE_LEARN(11, 12),
    /**
     * ABILITY_PING_NEUTRAL_OFFER = 13;
     */
    ABILITY_PING_NEUTRAL_OFFER(12, 13),
    /**
     * ABILITY_PING_NEUTRAL_REQUEST = 14;
     */
    ABILITY_PING_NEUTRAL_REQUEST(13, 14),
    /**
     * ABILITY_PING_NEUTRAL_EQUIP = 15;
     */
    ABILITY_PING_NEUTRAL_EQUIP(14, 15),
    /**
     * ABILITY_PING_INCOURIERBACKPACK = 16;
     */
    ABILITY_PING_INCOURIERBACKPACK(15, 16),
    ;

    /**
     * ABILITY_PING_READY = 1;
     */
    public static final int ABILITY_PING_READY_VALUE = 1;
    /**
     * ABILITY_PING_MANA = 2;
     */
    public static final int ABILITY_PING_MANA_VALUE = 2;
    /**
     * ABILITY_PING_COOLDOWN = 3;
     */
    public static final int ABILITY_PING_COOLDOWN_VALUE = 3;
    /**
     * ABILITY_PING_ENEMY = 4;
     */
    public static final int ABILITY_PING_ENEMY_VALUE = 4;
    /**
     * ABILITY_PING_UNLEARNED = 5;
     */
    public static final int ABILITY_PING_UNLEARNED_VALUE = 5;
    /**
     * ABILITY_PING_INBACKPACK = 6;
     */
    public static final int ABILITY_PING_INBACKPACK_VALUE = 6;
    /**
     * ABILITY_PING_INSTASH = 7;
     */
    public static final int ABILITY_PING_INSTASH_VALUE = 7;
    /**
     * ABILITY_PING_ONCOURIER = 8;
     */
    public static final int ABILITY_PING_ONCOURIER_VALUE = 8;
    /**
     * ABILITY_PING_ALLY = 9;
     */
    public static final int ABILITY_PING_ALLY_VALUE = 9;
    /**
     * ABILITY_PING_LEARN_READY = 10;
     */
    public static final int ABILITY_PING_LEARN_READY_VALUE = 10;
    /**
     * ABILITY_PING_WILL_LEARN = 11;
     */
    public static final int ABILITY_PING_WILL_LEARN_VALUE = 11;
    /**
     * ABILITY_PING_FUTURE_LEARN = 12;
     */
    public static final int ABILITY_PING_FUTURE_LEARN_VALUE = 12;
    /**
     * ABILITY_PING_NEUTRAL_OFFER = 13;
     */
    public static final int ABILITY_PING_NEUTRAL_OFFER_VALUE = 13;
    /**
     * ABILITY_PING_NEUTRAL_REQUEST = 14;
     */
    public static final int ABILITY_PING_NEUTRAL_REQUEST_VALUE = 14;
    /**
     * ABILITY_PING_NEUTRAL_EQUIP = 15;
     */
    public static final int ABILITY_PING_NEUTRAL_EQUIP_VALUE = 15;
    /**
     * ABILITY_PING_INCOURIERBACKPACK = 16;
     */
    public static final int ABILITY_PING_INCOURIERBACKPACK_VALUE = 16;


    public final int getNumber() { return value; }

    public static DOTA_ABILITY_PING_TYPE valueOf(int value) {
      switch (value) {
        case 1: return ABILITY_PING_READY;
        case 2: return ABILITY_PING_MANA;
        case 3: return ABILITY_PING_COOLDOWN;
        case 4: return ABILITY_PING_ENEMY;
        case 5: return ABILITY_PING_UNLEARNED;
        case 6: return ABILITY_PING_INBACKPACK;
        case 7: return ABILITY_PING_INSTASH;
        case 8: return ABILITY_PING_ONCOURIER;
        case 9: return ABILITY_PING_ALLY;
        case 10: return ABILITY_PING_LEARN_READY;
        case 11: return ABILITY_PING_WILL_LEARN;
        case 12: return ABILITY_PING_FUTURE_LEARN;
        case 13: return ABILITY_PING_NEUTRAL_OFFER;
        case 14: return ABILITY_PING_NEUTRAL_REQUEST;
        case 15: return ABILITY_PING_NEUTRAL_EQUIP;
        case 16: return ABILITY_PING_INCOURIERBACKPACK;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ABILITY_PING_TYPE findValueByNumber(int number) {
              return DOTA_ABILITY_PING_TYPE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(5);
    }

    private static final DOTA_ABILITY_PING_TYPE[] VALUES = values();

    public static DOTA_ABILITY_PING_TYPE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ABILITY_PING_TYPE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ABILITY_PING_TYPE)
  }

  /**
   * Protobuf enum {@code EDotaEntityMessages}
   */
  public enum EDotaEntityMessages
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    DOTA_UNIT_SPEECH(0, 0),
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    DOTA_UNIT_SPEECH_MUTE(1, 1),
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    DOTA_UNIT_ADD_GESTURE(2, 2),
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    DOTA_UNIT_REMOVE_GESTURE(3, 3),
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    DOTA_UNIT_REMOVE_ALL_GESTURES(4, 4),
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    DOTA_UNIT_FADE_GESTURE(5, 6),
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    DOTA_UNIT_SPEECH_CLIENTSIDE_RULES(6, 7),
    ;

    /**
     * DOTA_UNIT_SPEECH = 0;
     */
    public static final int DOTA_UNIT_SPEECH_VALUE = 0;
    /**
     * DOTA_UNIT_SPEECH_MUTE = 1;
     */
    public static final int DOTA_UNIT_SPEECH_MUTE_VALUE = 1;
    /**
     * DOTA_UNIT_ADD_GESTURE = 2;
     */
    public static final int DOTA_UNIT_ADD_GESTURE_VALUE = 2;
    /**
     * DOTA_UNIT_REMOVE_GESTURE = 3;
     */
    public static final int DOTA_UNIT_REMOVE_GESTURE_VALUE = 3;
    /**
     * DOTA_UNIT_REMOVE_ALL_GESTURES = 4;
     */
    public static final int DOTA_UNIT_REMOVE_ALL_GESTURES_VALUE = 4;
    /**
     * DOTA_UNIT_FADE_GESTURE = 6;
     */
    public static final int DOTA_UNIT_FADE_GESTURE_VALUE = 6;
    /**
     * DOTA_UNIT_SPEECH_CLIENTSIDE_RULES = 7;
     */
    public static final int DOTA_UNIT_SPEECH_CLIENTSIDE_RULES_VALUE = 7;


    public final int getNumber() { return value; }

    public static EDotaEntityMessages valueOf(int value) {
      switch (value) {
        case 0: return DOTA_UNIT_SPEECH;
        case 1: return DOTA_UNIT_SPEECH_MUTE;
        case 2: return DOTA_UNIT_ADD_GESTURE;
        case 3: return DOTA_UNIT_REMOVE_GESTURE;
        case 4: return DOTA_UNIT_REMOVE_ALL_GESTURES;
        case 6: return DOTA_UNIT_FADE_GESTURE;
        case 7: return DOTA_UNIT_SPEECH_CLIENTSIDE_RULES;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EDotaEntityMessages findValueByNumber(int number) {
              return EDotaEntityMessages.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(6);
    }

    private static final EDotaEntityMessages[] VALUES = values();

    public static EDotaEntityMessages valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EDotaEntityMessages(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EDotaEntityMessages)
  }

  /**
   * Protobuf enum {@code DOTA_OVERHEAD_ALERT}
   */
  public enum DOTA_OVERHEAD_ALERT
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    OVERHEAD_ALERT_GOLD(0, 0),
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    OVERHEAD_ALERT_DENY(1, 1),
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    OVERHEAD_ALERT_CRITICAL(2, 2),
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    OVERHEAD_ALERT_XP(3, 3),
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    OVERHEAD_ALERT_BONUS_SPELL_DAMAGE(4, 4),
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    OVERHEAD_ALERT_MISS(5, 5),
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    OVERHEAD_ALERT_DAMAGE(6, 6),
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    OVERHEAD_ALERT_EVADE(7, 7),
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    OVERHEAD_ALERT_BLOCK(8, 8),
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    OVERHEAD_ALERT_BONUS_POISON_DAMAGE(9, 9),
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    OVERHEAD_ALERT_HEAL(10, 10),
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    OVERHEAD_ALERT_MANA_ADD(11, 11),
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    OVERHEAD_ALERT_MANA_LOSS(12, 12),
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    OVERHEAD_ALERT_LAST_HIT_EARLY(13, 13),
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    OVERHEAD_ALERT_LAST_HIT_CLOSE(14, 14),
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    OVERHEAD_ALERT_LAST_HIT_MISS(15, 15),
    /**
     * OVERHEAD_ALERT_MAGICAL_BLOCK = 16;
     */
    OVERHEAD_ALERT_MAGICAL_BLOCK(16, 16),
    /**
     * OVERHEAD_ALERT_INCOMING_DAMAGE = 17;
     */
    OVERHEAD_ALERT_INCOMING_DAMAGE(17, 17),
    /**
     * OVERHEAD_ALERT_OUTGOING_DAMAGE = 18;
     */
    OVERHEAD_ALERT_OUTGOING_DAMAGE(18, 18),
    /**
     * OVERHEAD_ALERT_DISABLE_RESIST = 19;
     */
    OVERHEAD_ALERT_DISABLE_RESIST(19, 19),
    /**
     * OVERHEAD_ALERT_DEATH = 20;
     */
    OVERHEAD_ALERT_DEATH(20, 20),
    /**
     * OVERHEAD_ALERT_BLOCKED = 21;
     */
    OVERHEAD_ALERT_BLOCKED(21, 21),
    /**
     * OVERHEAD_ALERT_ITEM_RECEIVED = 22;
     */
    OVERHEAD_ALERT_ITEM_RECEIVED(22, 22),
    /**
     * OVERHEAD_ALERT_SHARD = 23;
     */
    OVERHEAD_ALERT_SHARD(23, 23),
    /**
     * OVERHEAD_ALERT_DEADLY_BLOW = 24;
     */
    OVERHEAD_ALERT_DEADLY_BLOW(24, 24),
    /**
     * OVERHEAD_ALERT_FORCE_MISS = 25;
     */
    OVERHEAD_ALERT_FORCE_MISS(25, 25),
    ;

    /**
     * OVERHEAD_ALERT_GOLD = 0;
     */
    public static final int OVERHEAD_ALERT_GOLD_VALUE = 0;
    /**
     * OVERHEAD_ALERT_DENY = 1;
     */
    public static final int OVERHEAD_ALERT_DENY_VALUE = 1;
    /**
     * OVERHEAD_ALERT_CRITICAL = 2;
     */
    public static final int OVERHEAD_ALERT_CRITICAL_VALUE = 2;
    /**
     * OVERHEAD_ALERT_XP = 3;
     */
    public static final int OVERHEAD_ALERT_XP_VALUE = 3;
    /**
     * OVERHEAD_ALERT_BONUS_SPELL_DAMAGE = 4;
     */
    public static final int OVERHEAD_ALERT_BONUS_SPELL_DAMAGE_VALUE = 4;
    /**
     * OVERHEAD_ALERT_MISS = 5;
     */
    public static final int OVERHEAD_ALERT_MISS_VALUE = 5;
    /**
     * OVERHEAD_ALERT_DAMAGE = 6;
     */
    public static final int OVERHEAD_ALERT_DAMAGE_VALUE = 6;
    /**
     * OVERHEAD_ALERT_EVADE = 7;
     */
    public static final int OVERHEAD_ALERT_EVADE_VALUE = 7;
    /**
     * OVERHEAD_ALERT_BLOCK = 8;
     */
    public static final int OVERHEAD_ALERT_BLOCK_VALUE = 8;
    /**
     * OVERHEAD_ALERT_BONUS_POISON_DAMAGE = 9;
     */
    public static final int OVERHEAD_ALERT_BONUS_POISON_DAMAGE_VALUE = 9;
    /**
     * OVERHEAD_ALERT_HEAL = 10;
     */
    public static final int OVERHEAD_ALERT_HEAL_VALUE = 10;
    /**
     * OVERHEAD_ALERT_MANA_ADD = 11;
     */
    public static final int OVERHEAD_ALERT_MANA_ADD_VALUE = 11;
    /**
     * OVERHEAD_ALERT_MANA_LOSS = 12;
     */
    public static final int OVERHEAD_ALERT_MANA_LOSS_VALUE = 12;
    /**
     * OVERHEAD_ALERT_LAST_HIT_EARLY = 13;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_EARLY_VALUE = 13;
    /**
     * OVERHEAD_ALERT_LAST_HIT_CLOSE = 14;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_CLOSE_VALUE = 14;
    /**
     * OVERHEAD_ALERT_LAST_HIT_MISS = 15;
     */
    public static final int OVERHEAD_ALERT_LAST_HIT_MISS_VALUE = 15;
    /**
     * OVERHEAD_ALERT_MAGICAL_BLOCK = 16;
     */
    public static final int OVERHEAD_ALERT_MAGICAL_BLOCK_VALUE = 16;
    /**
     * OVERHEAD_ALERT_INCOMING_DAMAGE = 17;
     */
    public static final int OVERHEAD_ALERT_INCOMING_DAMAGE_VALUE = 17;
    /**
     * OVERHEAD_ALERT_OUTGOING_DAMAGE = 18;
     */
    public static final int OVERHEAD_ALERT_OUTGOING_DAMAGE_VALUE = 18;
    /**
     * OVERHEAD_ALERT_DISABLE_RESIST = 19;
     */
    public static final int OVERHEAD_ALERT_DISABLE_RESIST_VALUE = 19;
    /**
     * OVERHEAD_ALERT_DEATH = 20;
     */
    public static final int OVERHEAD_ALERT_DEATH_VALUE = 20;
    /**
     * OVERHEAD_ALERT_BLOCKED = 21;
     */
    public static final int OVERHEAD_ALERT_BLOCKED_VALUE = 21;
    /**
     * OVERHEAD_ALERT_ITEM_RECEIVED = 22;
     */
    public static final int OVERHEAD_ALERT_ITEM_RECEIVED_VALUE = 22;
    /**
     * OVERHEAD_ALERT_SHARD = 23;
     */
    public static final int OVERHEAD_ALERT_SHARD_VALUE = 23;
    /**
     * OVERHEAD_ALERT_DEADLY_BLOW = 24;
     */
    public static final int OVERHEAD_ALERT_DEADLY_BLOW_VALUE = 24;
    /**
     * OVERHEAD_ALERT_FORCE_MISS = 25;
     */
    public static final int OVERHEAD_ALERT_FORCE_MISS_VALUE = 25;


    public final int getNumber() { return value; }

    public static DOTA_OVERHEAD_ALERT valueOf(int value) {
      switch (value) {
        case 0: return OVERHEAD_ALERT_GOLD;
        case 1: return OVERHEAD_ALERT_DENY;
        case 2: return OVERHEAD_ALERT_CRITICAL;
        case 3: return OVERHEAD_ALERT_XP;
        case 4: return OVERHEAD_ALERT_BONUS_SPELL_DAMAGE;
        case 5: return OVERHEAD_ALERT_MISS;
        case 6: return OVERHEAD_ALERT_DAMAGE;
        case 7: return OVERHEAD_ALERT_EVADE;
        case 8: return OVERHEAD_ALERT_BLOCK;
        case 9: return OVERHEAD_ALERT_BONUS_POISON_DAMAGE;
        case 10: return OVERHEAD_ALERT_HEAL;
        case 11: return OVERHEAD_ALERT_MANA_ADD;
        case 12: return OVERHEAD_ALERT_MANA_LOSS;
        case 13: return OVERHEAD_ALERT_LAST_HIT_EARLY;
        case 14: return OVERHEAD_ALERT_LAST_HIT_CLOSE;
        case 15: return OVERHEAD_ALERT_LAST_HIT_MISS;
        case 16: return OVERHEAD_ALERT_MAGICAL_BLOCK;
        case 17: return OVERHEAD_ALERT_INCOMING_DAMAGE;
        case 18: return OVERHEAD_ALERT_OUTGOING_DAMAGE;
        case 19: return OVERHEAD_ALERT_DISABLE_RESIST;
        case 20: return OVERHEAD_ALERT_DEATH;
        case 21: return OVERHEAD_ALERT_BLOCKED;
        case 22: return OVERHEAD_ALERT_ITEM_RECEIVED;
        case 23: return OVERHEAD_ALERT_SHARD;
        case 24: return OVERHEAD_ALERT_DEADLY_BLOW;
        case 25: return OVERHEAD_ALERT_FORCE_MISS;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_OVERHEAD_ALERT findValueByNumber(int number) {
              return DOTA_OVERHEAD_ALERT.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(7);
    }

    private static final DOTA_OVERHEAD_ALERT[] VALUES = values();

    public static DOTA_OVERHEAD_ALERT valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_OVERHEAD_ALERT(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_OVERHEAD_ALERT)
  }

  /**
   * Protobuf enum {@code DOTA_ROSHAN_PHASE}
   */
  public enum DOTA_ROSHAN_PHASE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * k_SRSP_ROSHAN_ALIVE = 0;
     */
    k_SRSP_ROSHAN_ALIVE(0, 0),
    /**
     * k_SRSP_ROSHAN_BASE_TIMER = 1;
     */
    k_SRSP_ROSHAN_BASE_TIMER(1, 1),
    /**
     * k_SRSP_ROSHAN_VISIBLE_TIMER = 2;
     */
    k_SRSP_ROSHAN_VISIBLE_TIMER(2, 2),
    ;

    /**
     * k_SRSP_ROSHAN_ALIVE = 0;
     */
    public static final int k_SRSP_ROSHAN_ALIVE_VALUE = 0;
    /**
     * k_SRSP_ROSHAN_BASE_TIMER = 1;
     */
    public static final int k_SRSP_ROSHAN_BASE_TIMER_VALUE = 1;
    /**
     * k_SRSP_ROSHAN_VISIBLE_TIMER = 2;
     */
    public static final int k_SRSP_ROSHAN_VISIBLE_TIMER_VALUE = 2;


    public final int getNumber() { return value; }

    public static DOTA_ROSHAN_PHASE valueOf(int value) {
      switch (value) {
        case 0: return k_SRSP_ROSHAN_ALIVE;
        case 1: return k_SRSP_ROSHAN_BASE_TIMER;
        case 2: return k_SRSP_ROSHAN_VISIBLE_TIMER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ROSHAN_PHASE findValueByNumber(int number) {
              return DOTA_ROSHAN_PHASE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(8);
    }

    private static final DOTA_ROSHAN_PHASE[] VALUES = values();

    public static DOTA_ROSHAN_PHASE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ROSHAN_PHASE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ROSHAN_PHASE)
  }

  /**
   * Protobuf enum {@code DOTA_POSITION_CATEGORY}
   */
  public enum DOTA_POSITION_CATEGORY
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_POSITION_NONE = 0;
     */
    DOTA_POSITION_NONE(0, 0),
    /**
     * DOTA_POSITION_BOTTOM_LANE = 1;
     */
    DOTA_POSITION_BOTTOM_LANE(1, 1),
    /**
     * DOTA_POSITION_MID_LANE = 2;
     */
    DOTA_POSITION_MID_LANE(2, 2),
    /**
     * DOTA_POSITION_TOP_LANE = 3;
     */
    DOTA_POSITION_TOP_LANE(3, 3),
    /**
     * DOTA_POSITION_RADIANT_JUNGLE = 4;
     */
    DOTA_POSITION_RADIANT_JUNGLE(4, 4),
    /**
     * DOTA_POSITION_DIRE_JUNGLE = 5;
     */
    DOTA_POSITION_DIRE_JUNGLE(5, 5),
    /**
     * DOTA_POSITION_RADIANT_ANCIENTS = 6;
     */
    DOTA_POSITION_RADIANT_ANCIENTS(6, 6),
    /**
     * DOTA_POSITION_DIRE_ANCIENTS = 7;
     */
    DOTA_POSITION_DIRE_ANCIENTS(7, 7),
    /**
     * DOTA_POSITION_RADIANT_SECRET_SHOP = 8;
     */
    DOTA_POSITION_RADIANT_SECRET_SHOP(8, 8),
    /**
     * DOTA_POSITION_DIRE_SECRET_SHOP = 9;
     */
    DOTA_POSITION_DIRE_SECRET_SHOP(9, 9),
    /**
     * DOTA_POSITION_RIVER = 10;
     */
    DOTA_POSITION_RIVER(10, 10),
    /**
     * DOTA_POSITION_ROSHAN_PIT = 11;
     */
    DOTA_POSITION_ROSHAN_PIT(11, 11),
    /**
     * DOTA_POSITION_RADIANT_BASE = 12;
     */
    DOTA_POSITION_RADIANT_BASE(12, 12),
    /**
     * DOTA_POSITION_DIRE_BASE = 13;
     */
    DOTA_POSITION_DIRE_BASE(13, 13),
    /**
     * DOTA_POSITION_FOUNTAIN = 14;
     */
    DOTA_POSITION_FOUNTAIN(14, 14),
    /**
     * DOTA_POSITION_OTHER = 15;
     */
    DOTA_POSITION_OTHER(15, 15),
    ;

    /**
     * DOTA_POSITION_NONE = 0;
     */
    public static final int DOTA_POSITION_NONE_VALUE = 0;
    /**
     * DOTA_POSITION_BOTTOM_LANE = 1;
     */
    public static final int DOTA_POSITION_BOTTOM_LANE_VALUE = 1;
    /**
     * DOTA_POSITION_MID_LANE = 2;
     */
    public static final int DOTA_POSITION_MID_LANE_VALUE = 2;
    /**
     * DOTA_POSITION_TOP_LANE = 3;
     */
    public static final int DOTA_POSITION_TOP_LANE_VALUE = 3;
    /**
     * DOTA_POSITION_RADIANT_JUNGLE = 4;
     */
    public static final int DOTA_POSITION_RADIANT_JUNGLE_VALUE = 4;
    /**
     * DOTA_POSITION_DIRE_JUNGLE = 5;
     */
    public static final int DOTA_POSITION_DIRE_JUNGLE_VALUE = 5;
    /**
     * DOTA_POSITION_RADIANT_ANCIENTS = 6;
     */
    public static final int DOTA_POSITION_RADIANT_ANCIENTS_VALUE = 6;
    /**
     * DOTA_POSITION_DIRE_ANCIENTS = 7;
     */
    public static final int DOTA_POSITION_DIRE_ANCIENTS_VALUE = 7;
    /**
     * DOTA_POSITION_RADIANT_SECRET_SHOP = 8;
     */
    public static final int DOTA_POSITION_RADIANT_SECRET_SHOP_VALUE = 8;
    /**
     * DOTA_POSITION_DIRE_SECRET_SHOP = 9;
     */
    public static final int DOTA_POSITION_DIRE_SECRET_SHOP_VALUE = 9;
    /**
     * DOTA_POSITION_RIVER = 10;
     */
    public static final int DOTA_POSITION_RIVER_VALUE = 10;
    /**
     * DOTA_POSITION_ROSHAN_PIT = 11;
     */
    public static final int DOTA_POSITION_ROSHAN_PIT_VALUE = 11;
    /**
     * DOTA_POSITION_RADIANT_BASE = 12;
     */
    public static final int DOTA_POSITION_RADIANT_BASE_VALUE = 12;
    /**
     * DOTA_POSITION_DIRE_BASE = 13;
     */
    public static final int DOTA_POSITION_DIRE_BASE_VALUE = 13;
    /**
     * DOTA_POSITION_FOUNTAIN = 14;
     */
    public static final int DOTA_POSITION_FOUNTAIN_VALUE = 14;
    /**
     * DOTA_POSITION_OTHER = 15;
     */
    public static final int DOTA_POSITION_OTHER_VALUE = 15;


    public final int getNumber() { return value; }

    public static DOTA_POSITION_CATEGORY valueOf(int value) {
      switch (value) {
        case 0: return DOTA_POSITION_NONE;
        case 1: return DOTA_POSITION_BOTTOM_LANE;
        case 2: return DOTA_POSITION_MID_LANE;
        case 3: return DOTA_POSITION_TOP_LANE;
        case 4: return DOTA_POSITION_RADIANT_JUNGLE;
        case 5: return DOTA_POSITION_DIRE_JUNGLE;
        case 6: return DOTA_POSITION_RADIANT_ANCIENTS;
        case 7: return DOTA_POSITION_DIRE_ANCIENTS;
        case 8: return DOTA_POSITION_RADIANT_SECRET_SHOP;
        case 9: return DOTA_POSITION_DIRE_SECRET_SHOP;
        case 10: return DOTA_POSITION_RIVER;
        case 11: return DOTA_POSITION_ROSHAN_PIT;
        case 12: return DOTA_POSITION_RADIANT_BASE;
        case 13: return DOTA_POSITION_DIRE_BASE;
        case 14: return DOTA_POSITION_FOUNTAIN;
        case 15: return DOTA_POSITION_OTHER;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_POSITION_CATEGORY findValueByNumber(int number) {
              return DOTA_POSITION_CATEGORY.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(9);
    }

    private static final DOTA_POSITION_CATEGORY[] VALUES = values();

    public static DOTA_POSITION_CATEGORY valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_POSITION_CATEGORY(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_POSITION_CATEGORY)
  }

  /**
   * Protobuf enum {@code DOTA_ABILITY_TARGET_TYPE}
   */
  public enum DOTA_ABILITY_TARGET_TYPE
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DOTA_ABILITY_TARGET_NONE = 0;
     */
    DOTA_ABILITY_TARGET_NONE(0, 0),
    /**
     * DOTA_ABILITY_TARGET_SELF = 1;
     */
    DOTA_ABILITY_TARGET_SELF(1, 1),
    /**
     * DOTA_ABILITY_TARGET_ALLY_HERO = 2;
     */
    DOTA_ABILITY_TARGET_ALLY_HERO(2, 2),
    /**
     * DOTA_ABILITY_TARGET_ALLY_CREEP = 3;
     */
    DOTA_ABILITY_TARGET_ALLY_CREEP(3, 3),
    /**
     * DOTA_ABILITY_TARGET_ENEMY_HERO = 4;
     */
    DOTA_ABILITY_TARGET_ENEMY_HERO(4, 4),
    /**
     * DOTA_ABILITY_TARGET_ENEMY_CREEP = 5;
     */
    DOTA_ABILITY_TARGET_ENEMY_CREEP(5, 5),
    ;

    /**
     * DOTA_ABILITY_TARGET_NONE = 0;
     */
    public static final int DOTA_ABILITY_TARGET_NONE_VALUE = 0;
    /**
     * DOTA_ABILITY_TARGET_SELF = 1;
     */
    public static final int DOTA_ABILITY_TARGET_SELF_VALUE = 1;
    /**
     * DOTA_ABILITY_TARGET_ALLY_HERO = 2;
     */
    public static final int DOTA_ABILITY_TARGET_ALLY_HERO_VALUE = 2;
    /**
     * DOTA_ABILITY_TARGET_ALLY_CREEP = 3;
     */
    public static final int DOTA_ABILITY_TARGET_ALLY_CREEP_VALUE = 3;
    /**
     * DOTA_ABILITY_TARGET_ENEMY_HERO = 4;
     */
    public static final int DOTA_ABILITY_TARGET_ENEMY_HERO_VALUE = 4;
    /**
     * DOTA_ABILITY_TARGET_ENEMY_CREEP = 5;
     */
    public static final int DOTA_ABILITY_TARGET_ENEMY_CREEP_VALUE = 5;


    public final int getNumber() { return value; }

    public static DOTA_ABILITY_TARGET_TYPE valueOf(int value) {
      switch (value) {
        case 0: return DOTA_ABILITY_TARGET_NONE;
        case 1: return DOTA_ABILITY_TARGET_SELF;
        case 2: return DOTA_ABILITY_TARGET_ALLY_HERO;
        case 3: return DOTA_ABILITY_TARGET_ALLY_CREEP;
        case 4: return DOTA_ABILITY_TARGET_ENEMY_HERO;
        case 5: return DOTA_ABILITY_TARGET_ENEMY_CREEP;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public DOTA_ABILITY_TARGET_TYPE findValueByNumber(int number) {
              return DOTA_ABILITY_TARGET_TYPE.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(10);
    }

    private static final DOTA_ABILITY_TARGET_TYPE[] VALUES = values();

    public static DOTA_ABILITY_TARGET_TYPE valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private DOTA_ABILITY_TARGET_TYPE(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:DOTA_ABILITY_TARGET_TYPE)
  }

  /**
   * Protobuf enum {@code EHeroStatType}
   */
  public enum EHeroStatType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * k_EHeroStatType_None = 0;
     */
    k_EHeroStatType_None(0, 0),
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    k_EHeroStatType_AxeTotalDamage(1, 2000),
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    k_EHeroStatType_BattleHungerDamage(2, 2001),
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    k_EHeroStatType_CounterHelixDamage(3, 2002),
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    k_EHeroStatType_CullingBladeDamage(4, 2003),
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    k_EHeroStatType_BerserkersCallCastCount(5, 2004),
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    k_EHeroStatType_BerserkersCallHeroesHitAverage(6, 2005),
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    k_EHeroStatType_BerserkersCallOtherUnitsHit(7, 2006),
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    k_EHeroStatType_BerserkersCallHeroAttacksTaken(8, 2007),
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    k_EHeroStatType_BerserkersCallOtherAttacksTaken(9, 2008),
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    k_EHeroStatType_BattleHungerCastCount(10, 2009),
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    k_EHeroStatType_BattleHungerPotentialDuration(11, 2010),
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    k_EHeroStatType_BattleHungerAverageDuration(12, 2011),
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    k_EHeroStatType_CounterHelixProcCount(13, 2012),
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    k_EHeroStatType_CounterHelixHeroProcCount(14, 2013),
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    k_EHeroStatType_CounterHelixHeroesHitAverage(15, 2014),
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    k_EHeroStatType_CounterHelixOtherUnitsHitCount(16, 2015),
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    k_EHeroStatType_CullingBladeCastCount(17, 2016),
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    k_EHeroStatType_CullingBladeKillCount(18, 2017),
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    k_EHeroStatType_CullingBladeAverageHealthCulled(19, 2018),
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    k_EHeroStatType_CullingBladeAverageDamageAvailable(20, 2019),
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    k_EHeroStatType_CullingBladeHeroBuffAverage(21, 2020),
    ;

    /**
     * k_EHeroStatType_None = 0;
     */
    public static final int k_EHeroStatType_None_VALUE = 0;
    /**
     * k_EHeroStatType_AxeTotalDamage = 2000;
     */
    public static final int k_EHeroStatType_AxeTotalDamage_VALUE = 2000;
    /**
     * k_EHeroStatType_BattleHungerDamage = 2001;
     */
    public static final int k_EHeroStatType_BattleHungerDamage_VALUE = 2001;
    /**
     * k_EHeroStatType_CounterHelixDamage = 2002;
     */
    public static final int k_EHeroStatType_CounterHelixDamage_VALUE = 2002;
    /**
     * k_EHeroStatType_CullingBladeDamage = 2003;
     */
    public static final int k_EHeroStatType_CullingBladeDamage_VALUE = 2003;
    /**
     * k_EHeroStatType_BerserkersCallCastCount = 2004;
     */
    public static final int k_EHeroStatType_BerserkersCallCastCount_VALUE = 2004;
    /**
     * k_EHeroStatType_BerserkersCallHeroesHitAverage = 2005;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroesHitAverage_VALUE = 2005;
    /**
     * k_EHeroStatType_BerserkersCallOtherUnitsHit = 2006;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherUnitsHit_VALUE = 2006;
    /**
     * k_EHeroStatType_BerserkersCallHeroAttacksTaken = 2007;
     */
    public static final int k_EHeroStatType_BerserkersCallHeroAttacksTaken_VALUE = 2007;
    /**
     * k_EHeroStatType_BerserkersCallOtherAttacksTaken = 2008;
     */
    public static final int k_EHeroStatType_BerserkersCallOtherAttacksTaken_VALUE = 2008;
    /**
     * k_EHeroStatType_BattleHungerCastCount = 2009;
     */
    public static final int k_EHeroStatType_BattleHungerCastCount_VALUE = 2009;
    /**
     * k_EHeroStatType_BattleHungerPotentialDuration = 2010;
     */
    public static final int k_EHeroStatType_BattleHungerPotentialDuration_VALUE = 2010;
    /**
     * k_EHeroStatType_BattleHungerAverageDuration = 2011;
     */
    public static final int k_EHeroStatType_BattleHungerAverageDuration_VALUE = 2011;
    /**
     * k_EHeroStatType_CounterHelixProcCount = 2012;
     */
    public static final int k_EHeroStatType_CounterHelixProcCount_VALUE = 2012;
    /**
     * k_EHeroStatType_CounterHelixHeroProcCount = 2013;
     */
    public static final int k_EHeroStatType_CounterHelixHeroProcCount_VALUE = 2013;
    /**
     * k_EHeroStatType_CounterHelixHeroesHitAverage = 2014;
     */
    public static final int k_EHeroStatType_CounterHelixHeroesHitAverage_VALUE = 2014;
    /**
     * k_EHeroStatType_CounterHelixOtherUnitsHitCount = 2015;
     */
    public static final int k_EHeroStatType_CounterHelixOtherUnitsHitCount_VALUE = 2015;
    /**
     * k_EHeroStatType_CullingBladeCastCount = 2016;
     */
    public static final int k_EHeroStatType_CullingBladeCastCount_VALUE = 2016;
    /**
     * k_EHeroStatType_CullingBladeKillCount = 2017;
     */
    public static final int k_EHeroStatType_CullingBladeKillCount_VALUE = 2017;
    /**
     * k_EHeroStatType_CullingBladeAverageHealthCulled = 2018;
     */
    public static final int k_EHeroStatType_CullingBladeAverageHealthCulled_VALUE = 2018;
    /**
     * k_EHeroStatType_CullingBladeAverageDamageAvailable = 2019;
     */
    public static final int k_EHeroStatType_CullingBladeAverageDamageAvailable_VALUE = 2019;
    /**
     * k_EHeroStatType_CullingBladeHeroBuffAverage = 2020;
     */
    public static final int k_EHeroStatType_CullingBladeHeroBuffAverage_VALUE = 2020;


    public final int getNumber() { return value; }

    public static EHeroStatType valueOf(int value) {
      switch (value) {
        case 0: return k_EHeroStatType_None;
        case 2000: return k_EHeroStatType_AxeTotalDamage;
        case 2001: return k_EHeroStatType_BattleHungerDamage;
        case 2002: return k_EHeroStatType_CounterHelixDamage;
        case 2003: return k_EHeroStatType_CullingBladeDamage;
        case 2004: return k_EHeroStatType_BerserkersCallCastCount;
        case 2005: return k_EHeroStatType_BerserkersCallHeroesHitAverage;
        case 2006: return k_EHeroStatType_BerserkersCallOtherUnitsHit;
        case 2007: return k_EHeroStatType_BerserkersCallHeroAttacksTaken;
        case 2008: return k_EHeroStatType_BerserkersCallOtherAttacksTaken;
        case 2009: return k_EHeroStatType_BattleHungerCastCount;
        case 2010: return k_EHeroStatType_BattleHungerPotentialDuration;
        case 2011: return k_EHeroStatType_BattleHungerAverageDuration;
        case 2012: return k_EHeroStatType_CounterHelixProcCount;
        case 2013: return k_EHeroStatType_CounterHelixHeroProcCount;
        case 2014: return k_EHeroStatType_CounterHelixHeroesHitAverage;
        case 2015: return k_EHeroStatType_CounterHelixOtherUnitsHitCount;
        case 2016: return k_EHeroStatType_CullingBladeCastCount;
        case 2017: return k_EHeroStatType_CullingBladeKillCount;
        case 2018: return k_EHeroStatType_CullingBladeAverageHealthCulled;
        case 2019: return k_EHeroStatType_CullingBladeAverageDamageAvailable;
        case 2020: return k_EHeroStatType_CullingBladeHeroBuffAverage;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EHeroStatType findValueByNumber(int number) {
              return EHeroStatType.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(11);
    }

    private static final EHeroStatType[] VALUES = values();

    public static EHeroStatType valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EHeroStatType(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EHeroStatType)
  }

  /**
   * Protobuf enum {@code EPlayerVoiceListenState}
   */
  public enum EPlayerVoiceListenState
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * kPVLS_None = 0;
     */
    kPVLS_None(0, 0),
    /**
     * kPVLS_DeniedChatBanned = 1;
     */
    kPVLS_DeniedChatBanned(1, 1),
    /**
     * kPVLS_DeniedPartner = 2;
     */
    kPVLS_DeniedPartner(2, 2),
    /**
     * kPVLS_DeniedHLTVTalkerNotSpectator = 3;
     */
    kPVLS_DeniedHLTVTalkerNotSpectator(3, 3),
    /**
     * kPVLS_DeniedHLTVNoTalkerPlayerID = 4;
     */
    kPVLS_DeniedHLTVNoTalkerPlayerID(4, 4),
    /**
     * kPVLS_DeniedHLTVTalkerNotBroadcaster = 5;
     */
    kPVLS_DeniedHLTVTalkerNotBroadcaster(5, 5),
    /**
     * kPVLS_DeniedTeamSpectator = 6;
     */
    kPVLS_DeniedTeamSpectator(6, 6),
    /**
     * kPVLS_DeniedStudent = 8;
     */
    kPVLS_DeniedStudent(7, 8),
    /**
     * kPVLS_DeniedPrivateCoach = 9;
     */
    kPVLS_DeniedPrivateCoach(8, 9),
    /**
     * kPVLS_Denied = 64;
     */
    kPVLS_Denied(9, 64),
    /**
     * kPVLS_AllowHLTVTalkerIsBroadcaster = 65;
     */
    kPVLS_AllowHLTVTalkerIsBroadcaster(10, 65),
    /**
     * kPVLS_AllowCoBroadcaster = 66;
     */
    kPVLS_AllowCoBroadcaster(11, 66),
    /**
     * kPVLS_AllowAllChat = 67;
     */
    kPVLS_AllowAllChat(12, 67),
    /**
     * kPVLS_AllowStudentToCoach = 68;
     */
    kPVLS_AllowStudentToCoach(13, 68),
    /**
     * kPVLS_AllowFellowStudent = 69;
     */
    kPVLS_AllowFellowStudent(14, 69),
    /**
     * kPVLS_AllowTalkerIsCoach = 70;
     */
    kPVLS_AllowTalkerIsCoach(15, 70),
    /**
     * kPVLS_AllowCoachHearTeam = 71;
     */
    kPVLS_AllowCoachHearTeam(16, 71),
    /**
     * kPVLS_AllowSameTeam = 72;
     */
    kPVLS_AllowSameTeam(17, 72),
    /**
     * kPVLS_AllowShowcase = 73;
     */
    kPVLS_AllowShowcase(18, 73),
    /**
     * kPVLS_AllowPrivateCoach = 74;
     */
    kPVLS_AllowPrivateCoach(19, 74),
    ;

    /**
     * kPVLS_None = 0;
     */
    public static final int kPVLS_None_VALUE = 0;
    /**
     * kPVLS_DeniedChatBanned = 1;
     */
    public static final int kPVLS_DeniedChatBanned_VALUE = 1;
    /**
     * kPVLS_DeniedPartner = 2;
     */
    public static final int kPVLS_DeniedPartner_VALUE = 2;
    /**
     * kPVLS_DeniedHLTVTalkerNotSpectator = 3;
     */
    public static final int kPVLS_DeniedHLTVTalkerNotSpectator_VALUE = 3;
    /**
     * kPVLS_DeniedHLTVNoTalkerPlayerID = 4;
     */
    public static final int kPVLS_DeniedHLTVNoTalkerPlayerID_VALUE = 4;
    /**
     * kPVLS_DeniedHLTVTalkerNotBroadcaster = 5;
     */
    public static final int kPVLS_DeniedHLTVTalkerNotBroadcaster_VALUE = 5;
    /**
     * kPVLS_DeniedTeamSpectator = 6;
     */
    public static final int kPVLS_DeniedTeamSpectator_VALUE = 6;
    /**
     * kPVLS_DeniedStudent = 8;
     */
    public static final int kPVLS_DeniedStudent_VALUE = 8;
    /**
     * kPVLS_DeniedPrivateCoach = 9;
     */
    public static final int kPVLS_DeniedPrivateCoach_VALUE = 9;
    /**
     * kPVLS_Denied = 64;
     */
    public static final int kPVLS_Denied_VALUE = 64;
    /**
     * kPVLS_AllowHLTVTalkerIsBroadcaster = 65;
     */
    public static final int kPVLS_AllowHLTVTalkerIsBroadcaster_VALUE = 65;
    /**
     * kPVLS_AllowCoBroadcaster = 66;
     */
    public static final int kPVLS_AllowCoBroadcaster_VALUE = 66;
    /**
     * kPVLS_AllowAllChat = 67;
     */
    public static final int kPVLS_AllowAllChat_VALUE = 67;
    /**
     * kPVLS_AllowStudentToCoach = 68;
     */
    public static final int kPVLS_AllowStudentToCoach_VALUE = 68;
    /**
     * kPVLS_AllowFellowStudent = 69;
     */
    public static final int kPVLS_AllowFellowStudent_VALUE = 69;
    /**
     * kPVLS_AllowTalkerIsCoach = 70;
     */
    public static final int kPVLS_AllowTalkerIsCoach_VALUE = 70;
    /**
     * kPVLS_AllowCoachHearTeam = 71;
     */
    public static final int kPVLS_AllowCoachHearTeam_VALUE = 71;
    /**
     * kPVLS_AllowSameTeam = 72;
     */
    public static final int kPVLS_AllowSameTeam_VALUE = 72;
    /**
     * kPVLS_AllowShowcase = 73;
     */
    public static final int kPVLS_AllowShowcase_VALUE = 73;
    /**
     * kPVLS_AllowPrivateCoach = 74;
     */
    public static final int kPVLS_AllowPrivateCoach_VALUE = 74;


    public final int getNumber() { return value; }

    public static EPlayerVoiceListenState valueOf(int value) {
      switch (value) {
        case 0: return kPVLS_None;
        case 1: return kPVLS_DeniedChatBanned;
        case 2: return kPVLS_DeniedPartner;
        case 3: return kPVLS_DeniedHLTVTalkerNotSpectator;
        case 4: return kPVLS_DeniedHLTVNoTalkerPlayerID;
        case 5: return kPVLS_DeniedHLTVTalkerNotBroadcaster;
        case 6: return kPVLS_DeniedTeamSpectator;
        case 8: return kPVLS_DeniedStudent;
        case 9: return kPVLS_DeniedPrivateCoach;
        case 64: return kPVLS_Denied;
        case 65: return kPVLS_AllowHLTVTalkerIsBroadcaster;
        case 66: return kPVLS_AllowCoBroadcaster;
        case 67: return kPVLS_AllowAllChat;
        case 68: return kPVLS_AllowStudentToCoach;
        case 69: return kPVLS_AllowFellowStudent;
        case 70: return kPVLS_AllowTalkerIsCoach;
        case 71: return kPVLS_AllowCoachHearTeam;
        case 72: return kPVLS_AllowSameTeam;
        case 73: return kPVLS_AllowShowcase;
        case 74: return kPVLS_AllowPrivateCoach;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EPlayerVoiceListenState findValueByNumber(int number) {
              return EPlayerVoiceListenState.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(12);
    }

    private static final EPlayerVoiceListenState[] VALUES = values();

    public static EPlayerVoiceListenState valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EPlayerVoiceListenState(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EPlayerVoiceListenState)
  }

  /**
   * Protobuf enum {@code EProjectionEvent}
   */
  public enum EProjectionEvent
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * ePE_FirstBlood = 0;
     */
    ePE_FirstBlood(0, 0),
    /**
     * ePE_Killstreak_godlike = 1;
     */
    ePE_Killstreak_godlike(1, 1),
    ;

    /**
     * ePE_FirstBlood = 0;
     */
    public static final int ePE_FirstBlood_VALUE = 0;
    /**
     * ePE_Killstreak_godlike = 1;
     */
    public static final int ePE_Killstreak_godlike_VALUE = 1;


    public final int getNumber() { return value; }

    public static EProjectionEvent valueOf(int value) {
      switch (value) {
        case 0: return ePE_FirstBlood;
        case 1: return ePE_Killstreak_godlike;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EProjectionEvent findValueByNumber(int number) {
              return EProjectionEvent.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.getDescriptor().getEnumTypes().get(13);
    }

    private static final EProjectionEvent[] VALUES = values();

    public static EProjectionEvent valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EProjectionEvent(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EProjectionEvent)
  }

  public interface CDOTAUserMsg_SwapVerifyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SwapVerify)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SwapVerify}
   */
  public static final class CDOTAUserMsg_SwapVerify extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SwapVerify)
      CDOTAUserMsg_SwapVerifyOrBuilder {
    // Use CDOTAUserMsg_SwapVerify.newBuilder() to construct.
    private CDOTAUserMsg_SwapVerify(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SwapVerify(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SwapVerify defaultInstance;
    public static CDOTAUserMsg_SwapVerify getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SwapVerify getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SwapVerify(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SwapVerify parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SwapVerify(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SwapVerify}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SwapVerify)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerifyOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SwapVerify_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SwapVerify) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SwapVerify)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SwapVerify(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SwapVerify)
  }

  public interface CDOTAUserMsg_ChatEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    boolean hasType();
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE getType();

    /**
     * optional uint32 value = 2;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 2;
     */
    int getValue();

    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    boolean hasPlayerid1();
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    int getPlayerid1();

    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    boolean hasPlayerid2();
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    int getPlayerid2();

    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    boolean hasPlayerid3();
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    int getPlayerid3();

    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    boolean hasPlayerid4();
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    int getPlayerid4();

    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    boolean hasPlayerid5();
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    int getPlayerid5();

    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    boolean hasPlayerid6();
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    int getPlayerid6();

    /**
     * optional uint32 value2 = 9;
     */
    boolean hasValue2();
    /**
     * optional uint32 value2 = 9;
     */
    int getValue2();

    /**
     * optional uint32 value3 = 10;
     */
    boolean hasValue3();
    /**
     * optional uint32 value3 = 10;
     */
    int getValue3();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatEvent}
   */
  public static final class CDOTAUserMsg_ChatEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatEvent)
      CDOTAUserMsg_ChatEventOrBuilder {
    // Use CDOTAUserMsg_ChatEvent.newBuilder() to construct.
    private CDOTAUserMsg_ChatEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatEvent defaultInstance;
    public static CDOTAUserMsg_ChatEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playerid1_ = input.readSInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playerid2_ = input.readSInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              playerid3_ = input.readSInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              playerid4_ = input.readSInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              playerid5_ = input.readSInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              playerid6_ = input.readSInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              value2_ = input.readUInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              value3_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE type_;
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE getType() {
      return type_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional uint32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int PLAYERID_1_FIELD_NUMBER = 3;
    private int playerid1_;
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public boolean hasPlayerid1() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional sint32 playerid_1 = 3 [default = -1];
     */
    public int getPlayerid1() {
      return playerid1_;
    }

    public static final int PLAYERID_2_FIELD_NUMBER = 4;
    private int playerid2_;
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public boolean hasPlayerid2() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sint32 playerid_2 = 4 [default = -1];
     */
    public int getPlayerid2() {
      return playerid2_;
    }

    public static final int PLAYERID_3_FIELD_NUMBER = 5;
    private int playerid3_;
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public boolean hasPlayerid3() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional sint32 playerid_3 = 5 [default = -1];
     */
    public int getPlayerid3() {
      return playerid3_;
    }

    public static final int PLAYERID_4_FIELD_NUMBER = 6;
    private int playerid4_;
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public boolean hasPlayerid4() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional sint32 playerid_4 = 6 [default = -1];
     */
    public int getPlayerid4() {
      return playerid4_;
    }

    public static final int PLAYERID_5_FIELD_NUMBER = 7;
    private int playerid5_;
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public boolean hasPlayerid5() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional sint32 playerid_5 = 7 [default = -1];
     */
    public int getPlayerid5() {
      return playerid5_;
    }

    public static final int PLAYERID_6_FIELD_NUMBER = 8;
    private int playerid6_;
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public boolean hasPlayerid6() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional sint32 playerid_6 = 8 [default = -1];
     */
    public int getPlayerid6() {
      return playerid6_;
    }

    public static final int VALUE2_FIELD_NUMBER = 9;
    private int value2_;
    /**
     * optional uint32 value2 = 9;
     */
    public boolean hasValue2() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional uint32 value2 = 9;
     */
    public int getValue2() {
      return value2_;
    }

    public static final int VALUE3_FIELD_NUMBER = 10;
    private int value3_;
    /**
     * optional uint32 value3 = 10;
     */
    public boolean hasValue3() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional uint32 value3 = 10;
     */
    public int getValue3() {
      return value3_;
    }

    private void initFields() {
      type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      value_ = 0;
      playerid1_ = -1;
      playerid2_ = -1;
      playerid3_ = -1;
      playerid4_ = -1;
      playerid5_ = -1;
      playerid6_ = -1;
      value2_ = 0;
      value3_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSInt32(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSInt32(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeSInt32(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeSInt32(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeSInt32(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeSInt32(8, playerid6_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeUInt32(9, value2_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(10, value3_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(3, playerid1_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(4, playerid2_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(5, playerid3_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(6, playerid4_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(7, playerid5_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(8, playerid6_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, value2_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, value3_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerid1_ = -1;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid2_ = -1;
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid3_ = -1;
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid4_ = -1;
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid5_ = -1;
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid6_ = -1;
        bitField0_ = (bitField0_ & ~0x00000080);
        value2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        value3_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerid1_ = playerid1_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerid2_ = playerid2_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.playerid3_ = playerid3_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.playerid4_ = playerid4_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.playerid5_ = playerid5_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.playerid6_ = playerid6_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.value2_ = value2_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.value3_ = value3_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasPlayerid1()) {
          setPlayerid1(other.getPlayerid1());
        }
        if (other.hasPlayerid2()) {
          setPlayerid2(other.getPlayerid2());
        }
        if (other.hasPlayerid3()) {
          setPlayerid3(other.getPlayerid3());
        }
        if (other.hasPlayerid4()) {
          setPlayerid4(other.getPlayerid4());
        }
        if (other.hasPlayerid5()) {
          setPlayerid5(other.getPlayerid5());
        }
        if (other.hasPlayerid6()) {
          setPlayerid6(other.getPlayerid6());
        }
        if (other.hasValue2()) {
          setValue2(other.getValue2());
        }
        if (other.hasValue3()) {
          setValue3(other.getValue3());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE getType() {
        return type_;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder setType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_CHAT_MESSAGE type = 1 [default = CHAT_MESSAGE_INVALID];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_CHAT_MESSAGE.CHAT_MESSAGE_INVALID;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int playerid1_ = -1;
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public boolean hasPlayerid1() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public int getPlayerid1() {
        return playerid1_;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder setPlayerid1(int value) {
        bitField0_ |= 0x00000004;
        playerid1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_1 = 3 [default = -1];
       */
      public Builder clearPlayerid1() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerid1_ = -1;
        onChanged();
        return this;
      }

      private int playerid2_ = -1;
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public boolean hasPlayerid2() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public int getPlayerid2() {
        return playerid2_;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder setPlayerid2(int value) {
        bitField0_ |= 0x00000008;
        playerid2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_2 = 4 [default = -1];
       */
      public Builder clearPlayerid2() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerid2_ = -1;
        onChanged();
        return this;
      }

      private int playerid3_ = -1;
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public boolean hasPlayerid3() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public int getPlayerid3() {
        return playerid3_;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder setPlayerid3(int value) {
        bitField0_ |= 0x00000010;
        playerid3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_3 = 5 [default = -1];
       */
      public Builder clearPlayerid3() {
        bitField0_ = (bitField0_ & ~0x00000010);
        playerid3_ = -1;
        onChanged();
        return this;
      }

      private int playerid4_ = -1;
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public boolean hasPlayerid4() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public int getPlayerid4() {
        return playerid4_;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder setPlayerid4(int value) {
        bitField0_ |= 0x00000020;
        playerid4_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_4 = 6 [default = -1];
       */
      public Builder clearPlayerid4() {
        bitField0_ = (bitField0_ & ~0x00000020);
        playerid4_ = -1;
        onChanged();
        return this;
      }

      private int playerid5_ = -1;
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public boolean hasPlayerid5() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public int getPlayerid5() {
        return playerid5_;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder setPlayerid5(int value) {
        bitField0_ |= 0x00000040;
        playerid5_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_5 = 7 [default = -1];
       */
      public Builder clearPlayerid5() {
        bitField0_ = (bitField0_ & ~0x00000040);
        playerid5_ = -1;
        onChanged();
        return this;
      }

      private int playerid6_ = -1;
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public boolean hasPlayerid6() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public int getPlayerid6() {
        return playerid6_;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder setPlayerid6(int value) {
        bitField0_ |= 0x00000080;
        playerid6_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 playerid_6 = 8 [default = -1];
       */
      public Builder clearPlayerid6() {
        bitField0_ = (bitField0_ & ~0x00000080);
        playerid6_ = -1;
        onChanged();
        return this;
      }

      private int value2_ ;
      /**
       * optional uint32 value2 = 9;
       */
      public boolean hasValue2() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 value2 = 9;
       */
      public int getValue2() {
        return value2_;
      }
      /**
       * optional uint32 value2 = 9;
       */
      public Builder setValue2(int value) {
        bitField0_ |= 0x00000100;
        value2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value2 = 9;
       */
      public Builder clearValue2() {
        bitField0_ = (bitField0_ & ~0x00000100);
        value2_ = 0;
        onChanged();
        return this;
      }

      private int value3_ ;
      /**
       * optional uint32 value3 = 10;
       */
      public boolean hasValue3() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional uint32 value3 = 10;
       */
      public int getValue3() {
        return value3_;
      }
      /**
       * optional uint32 value3 = 10;
       */
      public Builder setValue3(int value) {
        bitField0_ |= 0x00000200;
        value3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value3 = 10;
       */
      public Builder clearValue3() {
        bitField0_ = (bitField0_ & ~0x00000200);
        value3_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatEvent)
  }

  public interface CDOTAUserMsg_BotChatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_BotChat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string format = 2;
     */
    boolean hasFormat();
    /**
     * optional string format = 2;
     */
    java.lang.String getFormat();
    /**
     * optional string format = 2;
     */
    com.google.protobuf.ByteString
        getFormatBytes();

    /**
     * optional string message = 3;
     */
    boolean hasMessage();
    /**
     * optional string message = 3;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 3;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * optional string target = 4;
     */
    boolean hasTarget();
    /**
     * optional string target = 4;
     */
    java.lang.String getTarget();
    /**
     * optional string target = 4;
     */
    com.google.protobuf.ByteString
        getTargetBytes();

    /**
     * optional bool team_only = 5;
     */
    boolean hasTeamOnly();
    /**
     * optional bool team_only = 5;
     */
    boolean getTeamOnly();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BotChat}
   */
  public static final class CDOTAUserMsg_BotChat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_BotChat)
      CDOTAUserMsg_BotChatOrBuilder {
    // Use CDOTAUserMsg_BotChat.newBuilder() to construct.
    private CDOTAUserMsg_BotChat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BotChat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BotChat defaultInstance;
    public static CDOTAUserMsg_BotChat getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BotChat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BotChat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              format_ = bs;
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              message_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              target_ = bs;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              teamOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BotChat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BotChat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int FORMAT_FIELD_NUMBER = 2;
    private java.lang.Object format_;
    /**
     * optional string format = 2;
     */
    public boolean hasFormat() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string format = 2;
     */
    public java.lang.String getFormat() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          format_ = s;
        }
        return s;
      }
    }
    /**
     * optional string format = 2;
     */
    public com.google.protobuf.ByteString
        getFormatBytes() {
      java.lang.Object ref = format_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        format_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private java.lang.Object message_;
    /**
     * optional string message = 3;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string message = 3;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 3;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TARGET_FIELD_NUMBER = 4;
    private java.lang.Object target_;
    /**
     * optional string target = 4;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string target = 4;
     */
    public java.lang.String getTarget() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          target_ = s;
        }
        return s;
      }
    }
    /**
     * optional string target = 4;
     */
    public com.google.protobuf.ByteString
        getTargetBytes() {
      java.lang.Object ref = target_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        target_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TEAM_ONLY_FIELD_NUMBER = 5;
    private boolean teamOnly_;
    /**
     * optional bool team_only = 5;
     */
    public boolean hasTeamOnly() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool team_only = 5;
     */
    public boolean getTeamOnly() {
      return teamOnly_;
    }

    private void initFields() {
      playerId_ = 0;
      format_ = "";
      message_ = "";
      target_ = "";
      teamOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getTargetBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, teamOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getFormatBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getMessageBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getTargetBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, teamOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BotChat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_BotChat)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        format_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        target_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        teamOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BotChat_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.format_ = format_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.target_ = target_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.teamOnly_ = teamOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasFormat()) {
          bitField0_ |= 0x00000002;
          format_ = other.format_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasTarget()) {
          bitField0_ |= 0x00000008;
          target_ = other.target_;
          onChanged();
        }
        if (other.hasTeamOnly()) {
          setTeamOnly(other.getTeamOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BotChat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object format_ = "";
      /**
       * optional string format = 2;
       */
      public boolean hasFormat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string format = 2;
       */
      public java.lang.String getFormat() {
        java.lang.Object ref = format_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            format_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public com.google.protobuf.ByteString
          getFormatBytes() {
        java.lang.Object ref = format_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          format_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormat(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder clearFormat() {
        bitField0_ = (bitField0_ & ~0x00000002);
        format_ = getDefaultInstance().getFormat();
        onChanged();
        return this;
      }
      /**
       * optional string format = 2;
       */
      public Builder setFormatBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        format_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       * optional string message = 3;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string message = 3;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 3;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object target_ = "";
      /**
       * optional string target = 4;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string target = 4;
       */
      public java.lang.String getTarget() {
        java.lang.Object ref = target_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            target_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public com.google.protobuf.ByteString
          getTargetBytes() {
        java.lang.Object ref = target_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          target_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string target = 4;
       */
      public Builder setTarget(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000008);
        target_ = getDefaultInstance().getTarget();
        onChanged();
        return this;
      }
      /**
       * optional string target = 4;
       */
      public Builder setTargetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        target_ = value;
        onChanged();
        return this;
      }

      private boolean teamOnly_ ;
      /**
       * optional bool team_only = 5;
       */
      public boolean hasTeamOnly() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool team_only = 5;
       */
      public boolean getTeamOnly() {
        return teamOnly_;
      }
      /**
       * optional bool team_only = 5;
       */
      public Builder setTeamOnly(boolean value) {
        bitField0_ |= 0x00000010;
        teamOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool team_only = 5;
       */
      public Builder clearTeamOnly() {
        bitField0_ = (bitField0_ & ~0x00000010);
        teamOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BotChat)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BotChat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BotChat)
  }

  public interface CDOTAUserMsg_CombatLogBulkDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CombatLogBulkData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    java.util.List 
        getCombatEntriesList();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index);
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    int getCombatEntriesCount();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    java.util.List 
        getCombatEntriesOrBuilderList();
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
        int index);

    /**
     * optional float timestamp = 2;
     */
    boolean hasTimestamp();
    /**
     * optional float timestamp = 2;
     */
    float getTimestamp();

    /**
     * optional float duration = 3;
     */
    boolean hasDuration();
    /**
     * optional float duration = 3;
     */
    float getDuration();

    /**
     * optional int32 player_id = 4;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 4;
     */
    int getPlayerId();

    /**
     * optional float request_time = 5;
     */
    boolean hasRequestTime();
    /**
     * optional float request_time = 5;
     */
    float getRequestTime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CombatLogBulkData}
   */
  public static final class CDOTAUserMsg_CombatLogBulkData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CombatLogBulkData)
      CDOTAUserMsg_CombatLogBulkDataOrBuilder {
    // Use CDOTAUserMsg_CombatLogBulkData.newBuilder() to construct.
    private CDOTAUserMsg_CombatLogBulkData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CombatLogBulkData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CombatLogBulkData defaultInstance;
    public static CDOTAUserMsg_CombatLogBulkData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CombatLogBulkData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CombatLogBulkData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                combatEntries_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              combatEntries_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.PARSER, extensionRegistry));
              break;
            }
            case 21: {
              bitField0_ |= 0x00000001;
              timestamp_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              playerId_ = input.readInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000008;
              requestTime_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          combatEntries_ = java.util.Collections.unmodifiableList(combatEntries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CombatLogBulkData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CombatLogBulkData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int COMBAT_ENTRIES_FIELD_NUMBER = 1;
    private java.util.List combatEntries_;
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public java.util.List getCombatEntriesList() {
      return combatEntries_;
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public java.util.List 
        getCombatEntriesOrBuilderList() {
      return combatEntries_;
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public int getCombatEntriesCount() {
      return combatEntries_.size();
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index) {
      return combatEntries_.get(index);
    }
    /**
     * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
        int index) {
      return combatEntries_.get(index);
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 2;
    private float timestamp_;
    /**
     * optional float timestamp = 2;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional float timestamp = 2;
     */
    public float getTimestamp() {
      return timestamp_;
    }

    public static final int DURATION_FIELD_NUMBER = 3;
    private float duration_;
    /**
     * optional float duration = 3;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 3;
     */
    public float getDuration() {
      return duration_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 4;
    private int playerId_;
    /**
     * optional int32 player_id = 4;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 player_id = 4;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int REQUEST_TIME_FIELD_NUMBER = 5;
    private float requestTime_;
    /**
     * optional float request_time = 5;
     */
    public boolean hasRequestTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float request_time = 5;
     */
    public float getRequestTime() {
      return requestTime_;
    }

    private void initFields() {
      combatEntries_ = java.util.Collections.emptyList();
      timestamp_ = 0F;
      duration_ = 0F;
      playerId_ = 0;
      requestTime_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < combatEntries_.size(); i++) {
        output.writeMessage(1, combatEntries_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFloat(2, timestamp_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(3, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, playerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(5, requestTime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < combatEntries_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, combatEntries_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, timestamp_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, duration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, playerId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, requestTime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CombatLogBulkData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CombatLogBulkData)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getCombatEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (combatEntriesBuilder_ == null) {
          combatEntries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          combatEntriesBuilder_.clear();
        }
        timestamp_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        requestTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (combatEntriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            combatEntries_ = java.util.Collections.unmodifiableList(combatEntries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.combatEntries_ = combatEntries_;
        } else {
          result.combatEntries_ = combatEntriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timestamp_ = timestamp_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.requestTime_ = requestTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData.getDefaultInstance()) return this;
        if (combatEntriesBuilder_ == null) {
          if (!other.combatEntries_.isEmpty()) {
            if (combatEntries_.isEmpty()) {
              combatEntries_ = other.combatEntries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureCombatEntriesIsMutable();
              combatEntries_.addAll(other.combatEntries_);
            }
            onChanged();
          }
        } else {
          if (!other.combatEntries_.isEmpty()) {
            if (combatEntriesBuilder_.isEmpty()) {
              combatEntriesBuilder_.dispose();
              combatEntriesBuilder_ = null;
              combatEntries_ = other.combatEntries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              combatEntriesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getCombatEntriesFieldBuilder() : null;
            } else {
              combatEntriesBuilder_.addAllMessages(other.combatEntries_);
            }
          }
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasRequestTime()) {
          setRequestTime(other.getRequestTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CombatLogBulkData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List combatEntries_ =
        java.util.Collections.emptyList();
      private void ensureCombatEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          combatEntries_ = new java.util.ArrayList(combatEntries_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder> combatEntriesBuilder_;

      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List getCombatEntriesList() {
        if (combatEntriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(combatEntries_);
        } else {
          return combatEntriesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public int getCombatEntriesCount() {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.size();
        } else {
          return combatEntriesBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry getCombatEntries(int index) {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.get(index);
        } else {
          return combatEntriesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder setCombatEntries(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.set(index, value);
          onChanged();
        } else {
          combatEntriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder setCombatEntries(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.set(index, builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.add(value);
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry value) {
        if (combatEntriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureCombatEntriesIsMutable();
          combatEntries_.add(index, value);
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.add(builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addCombatEntries(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder builderForValue) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.add(index, builderForValue.build());
          onChanged();
        } else {
          combatEntriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder addAllCombatEntries(
          java.lang.Iterable values) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, combatEntries_);
          onChanged();
        } else {
          combatEntriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder clearCombatEntries() {
        if (combatEntriesBuilder_ == null) {
          combatEntries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          combatEntriesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public Builder removeCombatEntries(int index) {
        if (combatEntriesBuilder_ == null) {
          ensureCombatEntriesIsMutable();
          combatEntries_.remove(index);
          onChanged();
        } else {
          combatEntriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder getCombatEntriesBuilder(
          int index) {
        return getCombatEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder getCombatEntriesOrBuilder(
          int index) {
        if (combatEntriesBuilder_ == null) {
          return combatEntries_.get(index);  } else {
          return combatEntriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List 
           getCombatEntriesOrBuilderList() {
        if (combatEntriesBuilder_ != null) {
          return combatEntriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(combatEntries_);
        }
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder addCombatEntriesBuilder() {
        return getCombatEntriesFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance());
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder addCombatEntriesBuilder(
          int index) {
        return getCombatEntriesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance());
      }
      /**
       * repeated .CMsgDOTACombatLogEntry combat_entries = 1;
       */
      public java.util.List 
           getCombatEntriesBuilderList() {
        return getCombatEntriesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder> 
          getCombatEntriesFieldBuilder() {
        if (combatEntriesBuilder_ == null) {
          combatEntriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder>(
                  combatEntries_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          combatEntries_ = null;
        }
        return combatEntriesBuilder_;
      }

      private float timestamp_ ;
      /**
       * optional float timestamp = 2;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float timestamp = 2;
       */
      public float getTimestamp() {
        return timestamp_;
      }
      /**
       * optional float timestamp = 2;
       */
      public Builder setTimestamp(float value) {
        bitField0_ |= 0x00000002;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp = 2;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timestamp_ = 0F;
        onChanged();
        return this;
      }

      private float duration_ ;
      /**
       * optional float duration = 3;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float duration = 3;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 3;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000004;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 3;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000004);
        duration_ = 0F;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional int32 player_id = 4;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 player_id = 4;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 4;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000008;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 4;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private float requestTime_ ;
      /**
       * optional float request_time = 5;
       */
      public boolean hasRequestTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float request_time = 5;
       */
      public float getRequestTime() {
        return requestTime_;
      }
      /**
       * optional float request_time = 5;
       */
      public Builder setRequestTime(float value) {
        bitField0_ |= 0x00000010;
        requestTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float request_time = 5;
       */
      public Builder clearRequestTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        requestTime_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CombatLogBulkData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CombatLogBulkData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CombatLogBulkData)
  }

  public interface CDOTAUserMsg_ProjectileParticleCPDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ProjectileParticleCPData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 control_point = 1;
     */
    boolean hasControlPoint();
    /**
     * optional int32 control_point = 1;
     */
    int getControlPoint();

    /**
     * optional .CMsgVector vector = 2;
     */
    boolean hasVector();
    /**
     * optional .CMsgVector vector = 2;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getVector();
    /**
     * optional .CMsgVector vector = 2;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getVectorOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ProjectileParticleCPData}
   */
  public static final class CDOTAUserMsg_ProjectileParticleCPData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ProjectileParticleCPData)
      CDOTAUserMsg_ProjectileParticleCPDataOrBuilder {
    // Use CDOTAUserMsg_ProjectileParticleCPData.newBuilder() to construct.
    private CDOTAUserMsg_ProjectileParticleCPData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ProjectileParticleCPData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ProjectileParticleCPData defaultInstance;
    public static CDOTAUserMsg_ProjectileParticleCPData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ProjectileParticleCPData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ProjectileParticleCPData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              controlPoint_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = vector_.toBuilder();
              }
              vector_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vector_);
                vector_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectileParticleCPData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ProjectileParticleCPData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ProjectileParticleCPData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CONTROL_POINT_FIELD_NUMBER = 1;
    private int controlPoint_;
    /**
     * optional int32 control_point = 1;
     */
    public boolean hasControlPoint() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 control_point = 1;
     */
    public int getControlPoint() {
      return controlPoint_;
    }

    public static final int VECTOR_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector vector_;
    /**
     * optional .CMsgVector vector = 2;
     */
    public boolean hasVector() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CMsgVector vector = 2;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getVector() {
      return vector_;
    }
    /**
     * optional .CMsgVector vector = 2;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getVectorOrBuilder() {
      return vector_;
    }

    private void initFields() {
      controlPoint_ = 0;
      vector_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, controlPoint_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, vector_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, controlPoint_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, vector_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ProjectileParticleCPData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ProjectileParticleCPData)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectileParticleCPData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getVectorFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        controlPoint_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (vectorBuilder_ == null) {
          vector_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          vectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.controlPoint_ = controlPoint_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (vectorBuilder_ == null) {
          result.vector_ = vector_;
        } else {
          result.vector_ = vectorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance()) return this;
        if (other.hasControlPoint()) {
          setControlPoint(other.getControlPoint());
        }
        if (other.hasVector()) {
          mergeVector(other.getVector());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int controlPoint_ ;
      /**
       * optional int32 control_point = 1;
       */
      public boolean hasControlPoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 control_point = 1;
       */
      public int getControlPoint() {
        return controlPoint_;
      }
      /**
       * optional int32 control_point = 1;
       */
      public Builder setControlPoint(int value) {
        bitField0_ |= 0x00000001;
        controlPoint_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 control_point = 1;
       */
      public Builder clearControlPoint() {
        bitField0_ = (bitField0_ & ~0x00000001);
        controlPoint_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector vector_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> vectorBuilder_;
      /**
       * optional .CMsgVector vector = 2;
       */
      public boolean hasVector() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getVector() {
        if (vectorBuilder_ == null) {
          return vector_;
        } else {
          return vectorBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public Builder setVector(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (vectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vector_ = value;
          onChanged();
        } else {
          vectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public Builder setVector(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (vectorBuilder_ == null) {
          vector_ = builderForValue.build();
          onChanged();
        } else {
          vectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public Builder mergeVector(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (vectorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              vector_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            vector_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(vector_).mergeFrom(value).buildPartial();
          } else {
            vector_ = value;
          }
          onChanged();
        } else {
          vectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public Builder clearVector() {
        if (vectorBuilder_ == null) {
          vector_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          vectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getVectorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVectorFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getVectorOrBuilder() {
        if (vectorBuilder_ != null) {
          return vectorBuilder_.getMessageOrBuilder();
        } else {
          return vector_;
        }
      }
      /**
       * optional .CMsgVector vector = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getVectorFieldBuilder() {
        if (vectorBuilder_ == null) {
          vectorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getVector(),
                  getParentForChildren(),
                  isClean());
          vector_ = null;
        }
        return vectorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ProjectileParticleCPData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ProjectileParticleCPData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ProjectileParticleCPData)
  }

  public interface CDOTAUserMsg_MiniKillCamInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index);
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    int getAttackersCount();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    java.util.List 
        getAttackersOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
   */
  public static final class CDOTAUserMsg_MiniKillCamInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo)
      CDOTAUserMsg_MiniKillCamInfoOrBuilder {
    // Use CDOTAUserMsg_MiniKillCamInfo.newBuilder() to construct.
    private CDOTAUserMsg_MiniKillCamInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MiniKillCamInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MiniKillCamInfo defaultInstance;
    public static CDOTAUserMsg_MiniKillCamInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MiniKillCamInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                attackers_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              attackers_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = java.util.Collections.unmodifiableList(attackers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MiniKillCamInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MiniKillCamInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface AttackerOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo.Attacker)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 attacker = 1;
       */
      boolean hasAttacker();
      /**
       * optional uint32 attacker = 1;
       */
      int getAttacker();

      /**
       * optional int32 total_damage = 2;
       */
      boolean hasTotalDamage();
      /**
       * optional int32 total_damage = 2;
       */
      int getTotalDamage();

      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index);
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      int getAbilitiesCount();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      java.util.List 
          getAbilitiesOrBuilderList();
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index);

      /**
       * optional string attacker_name = 4;
       */
      boolean hasAttackerName();
      /**
       * optional string attacker_name = 4;
       */
      java.lang.String getAttackerName();
      /**
       * optional string attacker_name = 4;
       */
      com.google.protobuf.ByteString
          getAttackerNameBytes();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
     */
    public static final class Attacker extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker)
        AttackerOrBuilder {
      // Use Attacker.newBuilder() to construct.
      private Attacker(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Attacker(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Attacker defaultInstance;
      public static Attacker getDefaultInstance() {
        return defaultInstance;
      }

      public Attacker getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Attacker(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                attacker_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                totalDamage_ = input.readInt32();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  abilities_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                abilities_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.PARSER, extensionRegistry));
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                attackerName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = java.util.Collections.unmodifiableList(abilities_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Attacker parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Attacker(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      public interface AbilityOrBuilder extends
          // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
          com.google.protobuf.MessageOrBuilder {

        /**
         * optional int32 ability_id = 1;
         */
        boolean hasAbilityId();
        /**
         * optional int32 ability_id = 1;
         */
        int getAbilityId();

        /**
         * optional int32 damage = 2;
         */
        boolean hasDamage();
        /**
         * optional int32 damage = 2;
         */
        int getDamage();
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
       */
      public static final class Ability extends
          com.google.protobuf.GeneratedMessage implements
          // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
          AbilityOrBuilder {
        // Use Ability.newBuilder() to construct.
        private Ability(com.google.protobuf.GeneratedMessage.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private Ability(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final Ability defaultInstance;
        public static Ability getDefaultInstance() {
          return defaultInstance;
        }

        public Ability getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private Ability(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  abilityId_ = input.readInt32();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  damage_ = input.readInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
        }

        public static com.google.protobuf.Parser PARSER =
            new com.google.protobuf.AbstractParser() {
          public Ability parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Ability(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        public static final int ABILITY_ID_FIELD_NUMBER = 1;
        private int abilityId_;
        /**
         * optional int32 ability_id = 1;
         */
        public boolean hasAbilityId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 ability_id = 1;
         */
        public int getAbilityId() {
          return abilityId_;
        }

        public static final int DAMAGE_FIELD_NUMBER = 2;
        private int damage_;
        /**
         * optional int32 damage = 2;
         */
        public boolean hasDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 damage = 2;
         */
        public int getDamage() {
          return damage_;
        }

        private void initFields() {
          abilityId_ = 0;
          damage_ = 0;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeInt32(1, abilityId_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeInt32(2, damage_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(1, abilityId_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(2, damage_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder implements
            // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder.class);
          }

          // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            abilityId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000001);
            damage_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
          }

          public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getDefaultInstanceForType() {
            return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance();
          }

          public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability build() {
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability buildPartial() {
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.abilityId_ = abilityId_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.damage_ = damage_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) {
              return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability other) {
            if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance()) return this;
            if (other.hasAbilityId()) {
              setAbilityId(other.getAbilityId());
            }
            if (other.hasDamage()) {
              setDamage(other.getDamage());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private int abilityId_ ;
          /**
           * optional int32 ability_id = 1;
           */
          public boolean hasAbilityId() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * optional int32 ability_id = 1;
           */
          public int getAbilityId() {
            return abilityId_;
          }
          /**
           * optional int32 ability_id = 1;
           */
          public Builder setAbilityId(int value) {
            bitField0_ |= 0x00000001;
            abilityId_ = value;
            onChanged();
            return this;
          }
          /**
           * optional int32 ability_id = 1;
           */
          public Builder clearAbilityId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            abilityId_ = 0;
            onChanged();
            return this;
          }

          private int damage_ ;
          /**
           * optional int32 damage = 2;
           */
          public boolean hasDamage() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * optional int32 damage = 2;
           */
          public int getDamage() {
            return damage_;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder setDamage(int value) {
            bitField0_ |= 0x00000002;
            damage_ = value;
            onChanged();
            return this;
          }
          /**
           * optional int32 damage = 2;
           */
          public Builder clearDamage() {
            bitField0_ = (bitField0_ & ~0x00000002);
            damage_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
        }

        static {
          defaultInstance = new Ability(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability)
      }

      private int bitField0_;
      public static final int ATTACKER_FIELD_NUMBER = 1;
      private int attacker_;
      /**
       * optional uint32 attacker = 1;
       */
      public boolean hasAttacker() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 attacker = 1;
       */
      public int getAttacker() {
        return attacker_;
      }

      public static final int TOTAL_DAMAGE_FIELD_NUMBER = 2;
      private int totalDamage_;
      /**
       * optional int32 total_damage = 2;
       */
      public boolean hasTotalDamage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 total_damage = 2;
       */
      public int getTotalDamage() {
        return totalDamage_;
      }

      public static final int ABILITIES_FIELD_NUMBER = 3;
      private java.util.List abilities_;
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List getAbilitiesList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public java.util.List 
          getAbilitiesOrBuilderList() {
        return abilities_;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public int getAbilitiesCount() {
        return abilities_.size();
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
        return abilities_.get(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
          int index) {
        return abilities_.get(index);
      }

      public static final int ATTACKER_NAME_FIELD_NUMBER = 4;
      private java.lang.Object attackerName_;
      /**
       * optional string attacker_name = 4;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string attacker_name = 4;
       */
      public java.lang.String getAttackerName() {
        java.lang.Object ref = attackerName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            attackerName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string attacker_name = 4;
       */
      public com.google.protobuf.ByteString
          getAttackerNameBytes() {
        java.lang.Object ref = attackerName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          attackerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        attacker_ = 0;
        totalDamage_ = 0;
        abilities_ = java.util.Collections.emptyList();
        attackerName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          output.writeMessage(3, abilities_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(4, getAttackerNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, attacker_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, totalDamage_);
        }
        for (int i = 0; i < abilities_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, abilities_.get(i));
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getAttackerNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo.Attacker}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo.Attacker)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getAbilitiesFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          attacker_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          totalDamage_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            abilitiesBuilder_.clear();
          }
          attackerName_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.attacker_ = attacker_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.totalDamage_ = totalDamage_;
          if (abilitiesBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              abilities_ = java.util.Collections.unmodifiableList(abilities_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.abilities_ = abilities_;
          } else {
            result.abilities_ = abilitiesBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000004;
          }
          result.attackerName_ = attackerName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance()) return this;
          if (other.hasAttacker()) {
            setAttacker(other.getAttacker());
          }
          if (other.hasTotalDamage()) {
            setTotalDamage(other.getTotalDamage());
          }
          if (abilitiesBuilder_ == null) {
            if (!other.abilities_.isEmpty()) {
              if (abilities_.isEmpty()) {
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureAbilitiesIsMutable();
                abilities_.addAll(other.abilities_);
              }
              onChanged();
            }
          } else {
            if (!other.abilities_.isEmpty()) {
              if (abilitiesBuilder_.isEmpty()) {
                abilitiesBuilder_.dispose();
                abilitiesBuilder_ = null;
                abilities_ = other.abilities_;
                bitField0_ = (bitField0_ & ~0x00000004);
                abilitiesBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getAbilitiesFieldBuilder() : null;
              } else {
                abilitiesBuilder_.addAllMessages(other.abilities_);
              }
            }
          }
          if (other.hasAttackerName()) {
            bitField0_ |= 0x00000008;
            attackerName_ = other.attackerName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int attacker_ ;
        /**
         * optional uint32 attacker = 1;
         */
        public boolean hasAttacker() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 attacker = 1;
         */
        public int getAttacker() {
          return attacker_;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder setAttacker(int value) {
          bitField0_ |= 0x00000001;
          attacker_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 attacker = 1;
         */
        public Builder clearAttacker() {
          bitField0_ = (bitField0_ & ~0x00000001);
          attacker_ = 0;
          onChanged();
          return this;
        }

        private int totalDamage_ ;
        /**
         * optional int32 total_damage = 2;
         */
        public boolean hasTotalDamage() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 total_damage = 2;
         */
        public int getTotalDamage() {
          return totalDamage_;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder setTotalDamage(int value) {
          bitField0_ |= 0x00000002;
          totalDamage_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 total_damage = 2;
         */
        public Builder clearTotalDamage() {
          bitField0_ = (bitField0_ & ~0x00000002);
          totalDamage_ = 0;
          onChanged();
          return this;
        }

        private java.util.List abilities_ =
          java.util.Collections.emptyList();
        private void ensureAbilitiesIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            abilities_ = new java.util.ArrayList(abilities_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> abilitiesBuilder_;

        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List getAbilitiesList() {
          if (abilitiesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(abilities_);
          } else {
            return abilitiesBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public int getAbilitiesCount() {
          if (abilitiesBuilder_ == null) {
            return abilities_.size();
          } else {
            return abilitiesBuilder_.getCount();
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability getAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);
          } else {
            return abilitiesBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.set(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder setAbilities(
            int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.set(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability value) {
          if (abilitiesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAbilitiesIsMutable();
            abilities_.add(index, value);
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAbilities(
            int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder builderForValue) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.add(index, builderForValue.build());
            onChanged();
          } else {
            abilitiesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder addAllAbilities(
            java.lang.Iterable values) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, abilities_);
            onChanged();
          } else {
            abilitiesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder clearAbilities() {
          if (abilitiesBuilder_ == null) {
            abilities_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            abilitiesBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public Builder removeAbilities(int index) {
          if (abilitiesBuilder_ == null) {
            ensureAbilitiesIsMutable();
            abilities_.remove(index);
            onChanged();
          } else {
            abilitiesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder getAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder getAbilitiesOrBuilder(
            int index) {
          if (abilitiesBuilder_ == null) {
            return abilities_.get(index);  } else {
            return abilitiesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesOrBuilderList() {
          if (abilitiesBuilder_ != null) {
            return abilitiesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(abilities_);
          }
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder() {
          return getAbilitiesFieldBuilder().addBuilder(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder addAbilitiesBuilder(
            int index) {
          return getAbilitiesFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.getDefaultInstance());
        }
        /**
         * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability abilities = 3;
         */
        public java.util.List 
             getAbilitiesBuilderList() {
          return getAbilitiesFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder> 
            getAbilitiesFieldBuilder() {
          if (abilitiesBuilder_ == null) {
            abilitiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Ability.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.AbilityOrBuilder>(
                    abilities_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            abilities_ = null;
          }
          return abilitiesBuilder_;
        }

        private java.lang.Object attackerName_ = "";
        /**
         * optional string attacker_name = 4;
         */
        public boolean hasAttackerName() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional string attacker_name = 4;
         */
        public java.lang.String getAttackerName() {
          java.lang.Object ref = attackerName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              attackerName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string attacker_name = 4;
         */
        public com.google.protobuf.ByteString
            getAttackerNameBytes() {
          java.lang.Object ref = attackerName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            attackerName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder setAttackerName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          attackerName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder clearAttackerName() {
          bitField0_ = (bitField0_ & ~0x00000008);
          attackerName_ = getDefaultInstance().getAttackerName();
          onChanged();
          return this;
        }
        /**
         * optional string attacker_name = 4;
         */
        public Builder setAttackerNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          attackerName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
      }

      static {
        defaultInstance = new Attacker(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo.Attacker)
    }

    public static final int ATTACKERS_FIELD_NUMBER = 1;
    private java.util.List attackers_;
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List getAttackersList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public java.util.List 
        getAttackersOrBuilderList() {
      return attackers_;
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public int getAttackersCount() {
      return attackers_.size();
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
      return attackers_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
        int index) {
      return attackers_.get(index);
    }

    private void initFields() {
      attackers_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < attackers_.size(); i++) {
        output.writeMessage(1, attackers_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < attackers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, attackers_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MiniKillCamInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MiniKillCamInfo)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAttackersFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo(this);
        int from_bitField0_ = bitField0_;
        if (attackersBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            attackers_ = java.util.Collections.unmodifiableList(attackers_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.attackers_ = attackers_;
        } else {
          result.attackers_ = attackersBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.getDefaultInstance()) return this;
        if (attackersBuilder_ == null) {
          if (!other.attackers_.isEmpty()) {
            if (attackers_.isEmpty()) {
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAttackersIsMutable();
              attackers_.addAll(other.attackers_);
            }
            onChanged();
          }
        } else {
          if (!other.attackers_.isEmpty()) {
            if (attackersBuilder_.isEmpty()) {
              attackersBuilder_.dispose();
              attackersBuilder_ = null;
              attackers_ = other.attackers_;
              bitField0_ = (bitField0_ & ~0x00000001);
              attackersBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getAttackersFieldBuilder() : null;
            } else {
              attackersBuilder_.addAllMessages(other.attackers_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List attackers_ =
        java.util.Collections.emptyList();
      private void ensureAttackersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          attackers_ = new java.util.ArrayList(attackers_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> attackersBuilder_;

      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List getAttackersList() {
        if (attackersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(attackers_);
        } else {
          return attackersBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public int getAttackersCount() {
        if (attackersBuilder_ == null) {
          return attackers_.size();
        } else {
          return attackersBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker getAttackers(int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);
        } else {
          return attackersBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.set(index, value);
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder setAttackers(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.set(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker value) {
        if (attackersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAttackersIsMutable();
          attackers_.add(index, value);
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAttackers(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder builderForValue) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.add(index, builderForValue.build());
          onChanged();
        } else {
          attackersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder addAllAttackers(
          java.lang.Iterable values) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, attackers_);
          onChanged();
        } else {
          attackersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder clearAttackers() {
        if (attackersBuilder_ == null) {
          attackers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          attackersBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public Builder removeAttackers(int index) {
        if (attackersBuilder_ == null) {
          ensureAttackersIsMutable();
          attackers_.remove(index);
          onChanged();
        } else {
          attackersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder getAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder getAttackersOrBuilder(
          int index) {
        if (attackersBuilder_ == null) {
          return attackers_.get(index);  } else {
          return attackersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersOrBuilderList() {
        if (attackersBuilder_ != null) {
          return attackersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(attackers_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder() {
        return getAttackersFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder addAttackersBuilder(
          int index) {
        return getAttackersFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_MiniKillCamInfo.Attacker attackers = 1;
       */
      public java.util.List 
           getAttackersBuilderList() {
        return getAttackersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder> 
          getAttackersFieldBuilder() {
        if (attackersBuilder_ == null) {
          attackersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.Attacker.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MiniKillCamInfo.AttackerOrBuilder>(
                  attackers_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          attackers_ = null;
        }
        return attackersBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MiniKillCamInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MiniKillCamInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MiniKillCamInfo)
  }

  public interface CDOTAUserMsg_GlobalLightColorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlobalLightColor)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 color = 1;
     */
    boolean hasColor();
    /**
     * optional uint32 color = 1;
     */
    int getColor();

    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
   */
  public static final class CDOTAUserMsg_GlobalLightColor extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlobalLightColor)
      CDOTAUserMsg_GlobalLightColorOrBuilder {
    // Use CDOTAUserMsg_GlobalLightColor.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightColor(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightColor(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightColor defaultInstance;
    public static CDOTAUserMsg_GlobalLightColor getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightColor(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              color_ = input.readUInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightColor parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightColor(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int COLOR_FIELD_NUMBER = 1;
    private int color_;
    /**
     * optional uint32 color = 1;
     */
    public boolean hasColor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 color = 1;
     */
    public int getColor() {
      return color_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      color_ = 0;
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, color_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightColor}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlobalLightColor)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        color_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.color_ = color_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor.getDefaultInstance()) return this;
        if (other.hasColor()) {
          setColor(other.getColor());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightColor) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int color_ ;
      /**
       * optional uint32 color = 1;
       */
      public boolean hasColor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 color = 1;
       */
      public int getColor() {
        return color_;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder setColor(int value) {
        bitField0_ |= 0x00000001;
        color_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 color = 1;
       */
      public Builder clearColor() {
        bitField0_ = (bitField0_ & ~0x00000001);
        color_ = 0;
        onChanged();
        return this;
      }

      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightColor)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightColor(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightColor)
  }

  public interface CDOTAUserMsg_GlobalLightDirectionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlobalLightDirection)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector direction = 1;
     */
    boolean hasDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getDirection();
    /**
     * optional .CMsgVector direction = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder();

    /**
     * optional float duration = 2;
     */
    boolean hasDuration();
    /**
     * optional float duration = 2;
     */
    float getDuration();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
   */
  public static final class CDOTAUserMsg_GlobalLightDirection extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlobalLightDirection)
      CDOTAUserMsg_GlobalLightDirectionOrBuilder {
    // Use CDOTAUserMsg_GlobalLightDirection.newBuilder() to construct.
    private CDOTAUserMsg_GlobalLightDirection(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlobalLightDirection(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlobalLightDirection defaultInstance;
    public static CDOTAUserMsg_GlobalLightDirection getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlobalLightDirection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = direction_.toBuilder();
              }
              direction_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(direction_);
                direction_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              duration_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlobalLightDirection parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlobalLightDirection(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DIRECTION_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector direction_;
    /**
     * optional .CMsgVector direction = 1;
     */
    public boolean hasDirection() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getDirection() {
      return direction_;
    }
    /**
     * optional .CMsgVector direction = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
      return direction_;
    }

    public static final int DURATION_FIELD_NUMBER = 2;
    private float duration_;
    /**
     * optional float duration = 2;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float duration = 2;
     */
    public float getDuration() {
      return duration_;
    }

    private void initFields() {
      direction_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      duration_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, duration_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, direction_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, duration_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlobalLightDirection}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlobalLightDirection)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDirectionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (directionBuilder_ == null) {
          direction_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        duration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (directionBuilder_ == null) {
          result.direction_ = direction_;
        } else {
          result.direction_ = directionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.duration_ = duration_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection.getDefaultInstance()) return this;
        if (other.hasDirection()) {
          mergeDirection(other.getDirection());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlobalLightDirection) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector direction_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> directionBuilder_;
      /**
       * optional .CMsgVector direction = 1;
       */
      public boolean hasDirection() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getDirection() {
        if (directionBuilder_ == null) {
          return direction_;
        } else {
          return directionBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          direction_ = value;
          onChanged();
        } else {
          directionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder setDirection(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (directionBuilder_ == null) {
          direction_ = builderForValue.build();
          onChanged();
        } else {
          directionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder mergeDirection(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (directionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              direction_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            direction_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(direction_).mergeFrom(value).buildPartial();
          } else {
            direction_ = value;
          }
          onChanged();
        } else {
          directionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public Builder clearDirection() {
        if (directionBuilder_ == null) {
          direction_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          directionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getDirectionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDirectionFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getDirectionOrBuilder() {
        if (directionBuilder_ != null) {
          return directionBuilder_.getMessageOrBuilder();
        } else {
          return direction_;
        }
      }
      /**
       * optional .CMsgVector direction = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getDirectionFieldBuilder() {
        if (directionBuilder_ == null) {
          directionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getDirection(),
                  getParentForChildren(),
                  isClean());
          direction_ = null;
        }
        return directionBuilder_;
      }

      private float duration_ ;
      /**
       * optional float duration = 2;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float duration = 2;
       */
      public float getDuration() {
        return duration_;
      }
      /**
       * optional float duration = 2;
       */
      public Builder setDuration(float value) {
        bitField0_ |= 0x00000002;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float duration = 2;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000002);
        duration_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlobalLightDirection)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlobalLightDirection(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlobalLightDirection)
  }

  public interface CDOTAUserMsg_LocationPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_LocationPing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    boolean hasLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing getLocationPing();
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_LocationPing}
   */
  public static final class CDOTAUserMsg_LocationPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_LocationPing)
      CDOTAUserMsg_LocationPingOrBuilder {
    // Use CDOTAUserMsg_LocationPing.newBuilder() to construct.
    private CDOTAUserMsg_LocationPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_LocationPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_LocationPing defaultInstance;
    public static CDOTAUserMsg_LocationPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_LocationPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = locationPing_.toBuilder();
              }
              locationPing_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(locationPing_);
                locationPing_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_LocationPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_LocationPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int LOCATION_PING_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing locationPing_;
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public boolean hasLocationPing() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing getLocationPing() {
      return locationPing_;
    }
    /**
     * optional .CDOTAMsg_LocationPing location_ping = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
      return locationPing_;
    }

    private void initFields() {
      playerId_ = 0;
      locationPing_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, locationPing_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, locationPing_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_LocationPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_LocationPing)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationPingFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (locationPingBuilder_ == null) {
          locationPing_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_LocationPing_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (locationPingBuilder_ == null) {
          result.locationPing_ = locationPing_;
        } else {
          result.locationPing_ = locationPingBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasLocationPing()) {
          mergeLocationPing(other.getLocationPing());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_LocationPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing locationPing_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder> locationPingBuilder_;
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public boolean hasLocationPing() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing getLocationPing() {
        if (locationPingBuilder_ == null) {
          return locationPing_;
        } else {
          return locationPingBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          locationPing_ = value;
          onChanged();
        } else {
          locationPingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder setLocationPing(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder builderForValue) {
        if (locationPingBuilder_ == null) {
          locationPing_ = builderForValue.build();
          onChanged();
        } else {
          locationPingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder mergeLocationPing(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing value) {
        if (locationPingBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              locationPing_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.getDefaultInstance()) {
            locationPing_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.newBuilder(locationPing_).mergeFrom(value).buildPartial();
          } else {
            locationPing_ = value;
          }
          onChanged();
        } else {
          locationPingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public Builder clearLocationPing() {
        if (locationPingBuilder_ == null) {
          locationPing_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.getDefaultInstance();
          onChanged();
        } else {
          locationPingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder getLocationPingBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLocationPingFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder getLocationPingOrBuilder() {
        if (locationPingBuilder_ != null) {
          return locationPingBuilder_.getMessageOrBuilder();
        } else {
          return locationPing_;
        }
      }
      /**
       * optional .CDOTAMsg_LocationPing location_ping = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder> 
          getLocationPingFieldBuilder() {
        if (locationPingBuilder_ == null) {
          locationPingBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPing.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_LocationPingOrBuilder>(
                  getLocationPing(),
                  getParentForChildren(),
                  isClean());
          locationPing_ = null;
        }
        return locationPingBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_LocationPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_LocationPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_LocationPing)
  }

  public interface CDOTAUserMsg_PingConfirmationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PingConfirmation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_of_original_pinger = 1;
     */
    boolean hasPlayerIdOfOriginalPinger();
    /**
     * optional int32 player_id_of_original_pinger = 1;
     */
    int getPlayerIdOfOriginalPinger();

    /**
     * optional uint32 entity_index = 2;
     */
    boolean hasEntityIndex();
    /**
     * optional uint32 entity_index = 2;
     */
    int getEntityIndex();

    /**
     * optional uint32 icon_type = 3;
     */
    boolean hasIconType();
    /**
     * optional uint32 icon_type = 3;
     */
    int getIconType();

    /**
     * optional .CMsgVector location = 4;
     */
    boolean hasLocation();
    /**
     * optional .CMsgVector location = 4;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getLocation();
    /**
     * optional .CMsgVector location = 4;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PingConfirmation}
   */
  public static final class CDOTAUserMsg_PingConfirmation extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PingConfirmation)
      CDOTAUserMsg_PingConfirmationOrBuilder {
    // Use CDOTAUserMsg_PingConfirmation.newBuilder() to construct.
    private CDOTAUserMsg_PingConfirmation(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PingConfirmation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PingConfirmation defaultInstance;
    public static CDOTAUserMsg_PingConfirmation getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PingConfirmation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PingConfirmation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdOfOriginalPinger_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityIndex_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              iconType_ = input.readUInt32();
              break;
            }
            case 34: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = location_.toBuilder();
              }
              location_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(location_);
                location_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PingConfirmation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PingConfirmation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_OF_ORIGINAL_PINGER_FIELD_NUMBER = 1;
    private int playerIdOfOriginalPinger_;
    /**
     * optional int32 player_id_of_original_pinger = 1;
     */
    public boolean hasPlayerIdOfOriginalPinger() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_of_original_pinger = 1;
     */
    public int getPlayerIdOfOriginalPinger() {
      return playerIdOfOriginalPinger_;
    }

    public static final int ENTITY_INDEX_FIELD_NUMBER = 2;
    private int entityIndex_;
    /**
     * optional uint32 entity_index = 2;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 entity_index = 2;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    public static final int ICON_TYPE_FIELD_NUMBER = 3;
    private int iconType_;
    /**
     * optional uint32 icon_type = 3;
     */
    public boolean hasIconType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 icon_type = 3;
     */
    public int getIconType() {
      return iconType_;
    }

    public static final int LOCATION_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector location_;
    /**
     * optional .CMsgVector location = 4;
     */
    public boolean hasLocation() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CMsgVector location = 4;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getLocation() {
      return location_;
    }
    /**
     * optional .CMsgVector location = 4;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder() {
      return location_;
    }

    private void initFields() {
      playerIdOfOriginalPinger_ = 0;
      entityIndex_ = 0;
      iconType_ = 0;
      location_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdOfOriginalPinger_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, iconType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, location_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdOfOriginalPinger_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, iconType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, location_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PingConfirmation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PingConfirmation)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLocationFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdOfOriginalPinger_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        iconType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (locationBuilder_ == null) {
          location_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdOfOriginalPinger_ = playerIdOfOriginalPinger_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityIndex_ = entityIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.iconType_ = iconType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (locationBuilder_ == null) {
          result.location_ = location_;
        } else {
          result.location_ = locationBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation.getDefaultInstance()) return this;
        if (other.hasPlayerIdOfOriginalPinger()) {
          setPlayerIdOfOriginalPinger(other.getPlayerIdOfOriginalPinger());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        if (other.hasIconType()) {
          setIconType(other.getIconType());
        }
        if (other.hasLocation()) {
          mergeLocation(other.getLocation());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PingConfirmation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdOfOriginalPinger_ ;
      /**
       * optional int32 player_id_of_original_pinger = 1;
       */
      public boolean hasPlayerIdOfOriginalPinger() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_of_original_pinger = 1;
       */
      public int getPlayerIdOfOriginalPinger() {
        return playerIdOfOriginalPinger_;
      }
      /**
       * optional int32 player_id_of_original_pinger = 1;
       */
      public Builder setPlayerIdOfOriginalPinger(int value) {
        bitField0_ |= 0x00000001;
        playerIdOfOriginalPinger_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_of_original_pinger = 1;
       */
      public Builder clearPlayerIdOfOriginalPinger() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdOfOriginalPinger_ = 0;
        onChanged();
        return this;
      }

      private int entityIndex_ ;
      /**
       * optional uint32 entity_index = 2;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000002;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_index = 2;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      private int iconType_ ;
      /**
       * optional uint32 icon_type = 3;
       */
      public boolean hasIconType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public int getIconType() {
        return iconType_;
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public Builder setIconType(int value) {
        bitField0_ |= 0x00000004;
        iconType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 icon_type = 3;
       */
      public Builder clearIconType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        iconType_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector location_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> locationBuilder_;
      /**
       * optional .CMsgVector location = 4;
       */
      public boolean hasLocation() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getLocation() {
        if (locationBuilder_ == null) {
          return location_;
        } else {
          return locationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder setLocation(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          location_ = value;
          onChanged();
        } else {
          locationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder setLocation(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (locationBuilder_ == null) {
          location_ = builderForValue.build();
          onChanged();
        } else {
          locationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder mergeLocation(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (locationBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              location_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            location_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(location_).mergeFrom(value).buildPartial();
          } else {
            location_ = value;
          }
          onChanged();
        } else {
          locationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public Builder clearLocation() {
        if (locationBuilder_ == null) {
          location_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          locationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getLocationBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLocationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector location = 4;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getLocationOrBuilder() {
        if (locationBuilder_ != null) {
          return locationBuilder_.getMessageOrBuilder();
        } else {
          return location_;
        }
      }
      /**
       * optional .CMsgVector location = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getLocationFieldBuilder() {
        if (locationBuilder_ == null) {
          locationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getLocation(),
                  getParentForChildren(),
                  isClean());
          location_ = null;
        }
        return locationBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PingConfirmation)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PingConfirmation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PingConfirmation)
  }

  public interface CDOTAUserMsg_ItemAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    boolean hasItemAlert();
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert getItemAlert();
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemAlert}
   */
  public static final class CDOTAUserMsg_ItemAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemAlert)
      CDOTAUserMsg_ItemAlertOrBuilder {
    // Use CDOTAUserMsg_ItemAlert.newBuilder() to construct.
    private CDOTAUserMsg_ItemAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemAlert defaultInstance;
    public static CDOTAUserMsg_ItemAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = itemAlert_.toBuilder();
              }
              itemAlert_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(itemAlert_);
                itemAlert_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ITEM_ALERT_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert itemAlert_;
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public boolean hasItemAlert() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert getItemAlert() {
      return itemAlert_;
    }
    /**
     * optional .CDOTAMsg_ItemAlert item_alert = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder() {
      return itemAlert_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAlert_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, itemAlert_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, itemAlert_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getItemAlertFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemAlertBuilder_ == null) {
          itemAlert_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.getDefaultInstance();
        } else {
          itemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (itemAlertBuilder_ == null) {
          result.itemAlert_ = itemAlert_;
        } else {
          result.itemAlert_ = itemAlertBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAlert()) {
          mergeItemAlert(other.getItemAlert());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert itemAlert_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder> itemAlertBuilder_;
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public boolean hasItemAlert() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert getItemAlert() {
        if (itemAlertBuilder_ == null) {
          return itemAlert_;
        } else {
          return itemAlertBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder setItemAlert(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert value) {
        if (itemAlertBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          itemAlert_ = value;
          onChanged();
        } else {
          itemAlertBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder setItemAlert(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder builderForValue) {
        if (itemAlertBuilder_ == null) {
          itemAlert_ = builderForValue.build();
          onChanged();
        } else {
          itemAlertBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder mergeItemAlert(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert value) {
        if (itemAlertBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              itemAlert_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.getDefaultInstance()) {
            itemAlert_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.newBuilder(itemAlert_).mergeFrom(value).buildPartial();
          } else {
            itemAlert_ = value;
          }
          onChanged();
        } else {
          itemAlertBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public Builder clearItemAlert() {
        if (itemAlertBuilder_ == null) {
          itemAlert_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.getDefaultInstance();
          onChanged();
        } else {
          itemAlertBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder getItemAlertBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getItemAlertFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder getItemAlertOrBuilder() {
        if (itemAlertBuilder_ != null) {
          return itemAlertBuilder_.getMessageOrBuilder();
        } else {
          return itemAlert_;
        }
      }
      /**
       * optional .CDOTAMsg_ItemAlert item_alert = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder> 
          getItemAlertFieldBuilder() {
        if (itemAlertBuilder_ == null) {
          itemAlertBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlert.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_ItemAlertOrBuilder>(
                  getItemAlert(),
                  getParentForChildren(),
                  isClean());
          itemAlert_ = null;
        }
        return itemAlertBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemAlert)
  }

  public interface CDOTAUserMsg_EnemyItemAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EnemyItemAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 item_ability_id = 3;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 3;
     */
    int getItemAbilityId();

    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    boolean hasRuneType();
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    int getRuneType();

    /**
     * optional int32 entity_id = 5;
     */
    boolean hasEntityId();
    /**
     * optional int32 entity_id = 5;
     */
    int getEntityId();

    /**
     * optional int32 item_level = 6 [default = -1];
     */
    boolean hasItemLevel();
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    int getItemLevel();

    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    boolean hasPrimaryCharges();
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    int getPrimaryCharges();

    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    boolean hasSecondaryCharges();
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    int getSecondaryCharges();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
   */
  public static final class CDOTAUserMsg_EnemyItemAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EnemyItemAlert)
      CDOTAUserMsg_EnemyItemAlertOrBuilder {
    // Use CDOTAUserMsg_EnemyItemAlert.newBuilder() to construct.
    private CDOTAUserMsg_EnemyItemAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EnemyItemAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EnemyItemAlert defaultInstance;
    public static CDOTAUserMsg_EnemyItemAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EnemyItemAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              runeType_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              entityId_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              itemLevel_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              primaryCharges_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              secondaryCharges_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EnemyItemAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EnemyItemAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 3;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 3;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 item_ability_id = 3;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int RUNE_TYPE_FIELD_NUMBER = 4;
    private int runeType_;
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    public boolean hasRuneType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 rune_type = 4 [default = -1];
     */
    public int getRuneType() {
      return runeType_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 5;
    private int entityId_;
    /**
     * optional int32 entity_id = 5;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 entity_id = 5;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int ITEM_LEVEL_FIELD_NUMBER = 6;
    private int itemLevel_;
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    public boolean hasItemLevel() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 item_level = 6 [default = -1];
     */
    public int getItemLevel() {
      return itemLevel_;
    }

    public static final int PRIMARY_CHARGES_FIELD_NUMBER = 7;
    private int primaryCharges_;
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    public boolean hasPrimaryCharges() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 primary_charges = 7 [default = -1];
     */
    public int getPrimaryCharges() {
      return primaryCharges_;
    }

    public static final int SECONDARY_CHARGES_FIELD_NUMBER = 8;
    private int secondaryCharges_;
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    public boolean hasSecondaryCharges() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int32 secondary_charges = 8 [default = -1];
     */
    public int getSecondaryCharges() {
      return secondaryCharges_;
    }

    private void initFields() {
      playerId_ = 0;
      targetPlayerId_ = 0;
      itemAbilityId_ = 0;
      runeType_ = -1;
      entityId_ = 0;
      itemLevel_ = -1;
      primaryCharges_ = -1;
      secondaryCharges_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, runeType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, entityId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, itemLevel_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, primaryCharges_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, secondaryCharges_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, runeType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, entityId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, itemLevel_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, primaryCharges_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, secondaryCharges_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EnemyItemAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EnemyItemAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        runeType_ = -1;
        bitField0_ = (bitField0_ & ~0x00000008);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        itemLevel_ = -1;
        bitField0_ = (bitField0_ & ~0x00000020);
        primaryCharges_ = -1;
        bitField0_ = (bitField0_ & ~0x00000040);
        secondaryCharges_ = -1;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.runeType_ = runeType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.itemLevel_ = itemLevel_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.primaryCharges_ = primaryCharges_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.secondaryCharges_ = secondaryCharges_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasRuneType()) {
          setRuneType(other.getRuneType());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasItemLevel()) {
          setItemLevel(other.getItemLevel());
        }
        if (other.hasPrimaryCharges()) {
          setPrimaryCharges(other.getPrimaryCharges());
        }
        if (other.hasSecondaryCharges()) {
          setSecondaryCharges(other.getSecondaryCharges());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EnemyItemAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 3;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000004;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 3;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int runeType_ = -1;
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public boolean hasRuneType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public int getRuneType() {
        return runeType_;
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public Builder setRuneType(int value) {
        bitField0_ |= 0x00000008;
        runeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 rune_type = 4 [default = -1];
       */
      public Builder clearRuneType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        runeType_ = -1;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional int32 entity_id = 5;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 entity_id = 5;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional int32 entity_id = 5;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000010;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_id = 5;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private int itemLevel_ = -1;
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public boolean hasItemLevel() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public int getItemLevel() {
        return itemLevel_;
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public Builder setItemLevel(int value) {
        bitField0_ |= 0x00000020;
        itemLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_level = 6 [default = -1];
       */
      public Builder clearItemLevel() {
        bitField0_ = (bitField0_ & ~0x00000020);
        itemLevel_ = -1;
        onChanged();
        return this;
      }

      private int primaryCharges_ = -1;
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public boolean hasPrimaryCharges() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public int getPrimaryCharges() {
        return primaryCharges_;
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public Builder setPrimaryCharges(int value) {
        bitField0_ |= 0x00000040;
        primaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 primary_charges = 7 [default = -1];
       */
      public Builder clearPrimaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000040);
        primaryCharges_ = -1;
        onChanged();
        return this;
      }

      private int secondaryCharges_ = -1;
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public boolean hasSecondaryCharges() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public int getSecondaryCharges() {
        return secondaryCharges_;
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public Builder setSecondaryCharges(int value) {
        bitField0_ |= 0x00000080;
        secondaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 secondary_charges = 8 [default = -1];
       */
      public Builder clearSecondaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000080);
        secondaryCharges_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EnemyItemAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EnemyItemAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EnemyItemAlert)
  }

  public interface CDOTAUserMsg_ModifierAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ModifierAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string class_name = 2;
     */
    boolean hasClassName();
    /**
     * optional string class_name = 2;
     */
    java.lang.String getClassName();
    /**
     * optional string class_name = 2;
     */
    com.google.protobuf.ByteString
        getClassNameBytes();

    /**
     * optional uint32 stack_count = 3;
     */
    boolean hasStackCount();
    /**
     * optional uint32 stack_count = 3;
     */
    int getStackCount();

    /**
     * optional bool is_debuff = 4;
     */
    boolean hasIsDebuff();
    /**
     * optional bool is_debuff = 4;
     */
    boolean getIsDebuff();

    /**
     * optional int32 target_entindex = 5;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 5;
     */
    int getTargetEntindex();

    /**
     * optional float seconds_remaining = 6;
     */
    boolean hasSecondsRemaining();
    /**
     * optional float seconds_remaining = 6;
     */
    float getSecondsRemaining();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ModifierAlert}
   */
  public static final class CDOTAUserMsg_ModifierAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ModifierAlert)
      CDOTAUserMsg_ModifierAlertOrBuilder {
    // Use CDOTAUserMsg_ModifierAlert.newBuilder() to construct.
    private CDOTAUserMsg_ModifierAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ModifierAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ModifierAlert defaultInstance;
    public static CDOTAUserMsg_ModifierAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ModifierAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ModifierAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              className_ = bs;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              stackCount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              isDebuff_ = input.readBool();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              secondsRemaining_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ModifierAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ModifierAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CLASS_NAME_FIELD_NUMBER = 2;
    private java.lang.Object className_;
    /**
     * optional string class_name = 2;
     */
    public boolean hasClassName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string class_name = 2;
     */
    public java.lang.String getClassName() {
      java.lang.Object ref = className_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          className_ = s;
        }
        return s;
      }
    }
    /**
     * optional string class_name = 2;
     */
    public com.google.protobuf.ByteString
        getClassNameBytes() {
      java.lang.Object ref = className_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        className_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STACK_COUNT_FIELD_NUMBER = 3;
    private int stackCount_;
    /**
     * optional uint32 stack_count = 3;
     */
    public boolean hasStackCount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 stack_count = 3;
     */
    public int getStackCount() {
      return stackCount_;
    }

    public static final int IS_DEBUFF_FIELD_NUMBER = 4;
    private boolean isDebuff_;
    /**
     * optional bool is_debuff = 4;
     */
    public boolean hasIsDebuff() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool is_debuff = 4;
     */
    public boolean getIsDebuff() {
      return isDebuff_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 5;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 5;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 target_entindex = 5;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SECONDS_REMAINING_FIELD_NUMBER = 6;
    private float secondsRemaining_;
    /**
     * optional float seconds_remaining = 6;
     */
    public boolean hasSecondsRemaining() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float seconds_remaining = 6;
     */
    public float getSecondsRemaining() {
      return secondsRemaining_;
    }

    private void initFields() {
      playerId_ = 0;
      className_ = "";
      stackCount_ = 0;
      isDebuff_ = false;
      targetEntindex_ = 0;
      secondsRemaining_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getClassNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, stackCount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, isDebuff_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, targetEntindex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(6, secondsRemaining_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getClassNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, stackCount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, isDebuff_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, targetEntindex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, secondsRemaining_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ModifierAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ModifierAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        className_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        stackCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        isDebuff_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        secondsRemaining_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.className_ = className_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.stackCount_ = stackCount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.isDebuff_ = isDebuff_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.secondsRemaining_ = secondsRemaining_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasClassName()) {
          bitField0_ |= 0x00000002;
          className_ = other.className_;
          onChanged();
        }
        if (other.hasStackCount()) {
          setStackCount(other.getStackCount());
        }
        if (other.hasIsDebuff()) {
          setIsDebuff(other.getIsDebuff());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasSecondsRemaining()) {
          setSecondsRemaining(other.getSecondsRemaining());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ModifierAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object className_ = "";
      /**
       * optional string class_name = 2;
       */
      public boolean hasClassName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string class_name = 2;
       */
      public java.lang.String getClassName() {
        java.lang.Object ref = className_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            className_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string class_name = 2;
       */
      public com.google.protobuf.ByteString
          getClassNameBytes() {
        java.lang.Object ref = className_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          className_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string class_name = 2;
       */
      public Builder setClassName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        className_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string class_name = 2;
       */
      public Builder clearClassName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        className_ = getDefaultInstance().getClassName();
        onChanged();
        return this;
      }
      /**
       * optional string class_name = 2;
       */
      public Builder setClassNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        className_ = value;
        onChanged();
        return this;
      }

      private int stackCount_ ;
      /**
       * optional uint32 stack_count = 3;
       */
      public boolean hasStackCount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public int getStackCount() {
        return stackCount_;
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public Builder setStackCount(int value) {
        bitField0_ |= 0x00000004;
        stackCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 stack_count = 3;
       */
      public Builder clearStackCount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        stackCount_ = 0;
        onChanged();
        return this;
      }

      private boolean isDebuff_ ;
      /**
       * optional bool is_debuff = 4;
       */
      public boolean hasIsDebuff() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool is_debuff = 4;
       */
      public boolean getIsDebuff() {
        return isDebuff_;
      }
      /**
       * optional bool is_debuff = 4;
       */
      public Builder setIsDebuff(boolean value) {
        bitField0_ |= 0x00000008;
        isDebuff_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_debuff = 4;
       */
      public Builder clearIsDebuff() {
        bitField0_ = (bitField0_ & ~0x00000008);
        isDebuff_ = false;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 5;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 target_entindex = 5;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 5;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000010;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 5;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private float secondsRemaining_ ;
      /**
       * optional float seconds_remaining = 6;
       */
      public boolean hasSecondsRemaining() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public float getSecondsRemaining() {
        return secondsRemaining_;
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public Builder setSecondsRemaining(float value) {
        bitField0_ |= 0x00000020;
        secondsRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float seconds_remaining = 6;
       */
      public Builder clearSecondsRemaining() {
        bitField0_ = (bitField0_ & ~0x00000020);
        secondsRemaining_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ModifierAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ModifierAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ModifierAlert)
  }

  public interface CDOTAUserMsg_HPManaAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HPManaAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 2;
     */
    int getTargetEntindex();

    /**
     * optional bool show_raw_values = 3;
     */
    boolean hasShowRawValues();
    /**
     * optional bool show_raw_values = 3;
     */
    boolean getShowRawValues();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HPManaAlert}
   */
  public static final class CDOTAUserMsg_HPManaAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HPManaAlert)
      CDOTAUserMsg_HPManaAlertOrBuilder {
    // Use CDOTAUserMsg_HPManaAlert.newBuilder() to construct.
    private CDOTAUserMsg_HPManaAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HPManaAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HPManaAlert defaultInstance;
    public static CDOTAUserMsg_HPManaAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HPManaAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HPManaAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              showRawValues_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HPManaAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HPManaAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SHOW_RAW_VALUES_FIELD_NUMBER = 3;
    private boolean showRawValues_;
    /**
     * optional bool show_raw_values = 3;
     */
    public boolean hasShowRawValues() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool show_raw_values = 3;
     */
    public boolean getShowRawValues() {
      return showRawValues_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
      showRawValues_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, showRawValues_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, showRawValues_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HPManaAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HPManaAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        showRawValues_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.showRawValues_ = showRawValues_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasShowRawValues()) {
          setShowRawValues(other.getShowRawValues());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HPManaAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private boolean showRawValues_ ;
      /**
       * optional bool show_raw_values = 3;
       */
      public boolean hasShowRawValues() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public boolean getShowRawValues() {
        return showRawValues_;
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public Builder setShowRawValues(boolean value) {
        bitField0_ |= 0x00000004;
        showRawValues_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool show_raw_values = 3;
       */
      public Builder clearShowRawValues() {
        bitField0_ = (bitField0_ & ~0x00000004);
        showRawValues_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HPManaAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HPManaAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HPManaAlert)
  }

  public interface CDOTAUserMsg_NeutralCampAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_NeutralCampAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 spawner_entindex = 2;
     */
    boolean hasSpawnerEntindex();
    /**
     * optional int32 spawner_entindex = 2;
     */
    int getSpawnerEntindex();

    /**
     * optional int32 unit_entindex = 3;
     */
    boolean hasUnitEntindex();
    /**
     * optional int32 unit_entindex = 3;
     */
    int getUnitEntindex();

    /**
     * optional int32 stack_count = 4;
     */
    boolean hasStackCount();
    /**
     * optional int32 stack_count = 4;
     */
    int getStackCount();

    /**
     * optional int32 camp_type = 5;
     */
    boolean hasCampType();
    /**
     * optional int32 camp_type = 5;
     */
    int getCampType();

    /**
     * optional bool stack_request = 6;
     */
    boolean hasStackRequest();
    /**
     * optional bool stack_request = 6;
     */
    boolean getStackRequest();

    /**
     * optional bool stack_intention = 7;
     */
    boolean hasStackIntention();
    /**
     * optional bool stack_intention = 7;
     */
    boolean getStackIntention();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_NeutralCampAlert}
   */
  public static final class CDOTAUserMsg_NeutralCampAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_NeutralCampAlert)
      CDOTAUserMsg_NeutralCampAlertOrBuilder {
    // Use CDOTAUserMsg_NeutralCampAlert.newBuilder() to construct.
    private CDOTAUserMsg_NeutralCampAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_NeutralCampAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_NeutralCampAlert defaultInstance;
    public static CDOTAUserMsg_NeutralCampAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_NeutralCampAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_NeutralCampAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              spawnerEntindex_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              unitEntindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              stackCount_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              campType_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              stackRequest_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              stackIntention_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NeutralCampAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_NeutralCampAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_NeutralCampAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int SPAWNER_ENTINDEX_FIELD_NUMBER = 2;
    private int spawnerEntindex_;
    /**
     * optional int32 spawner_entindex = 2;
     */
    public boolean hasSpawnerEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 spawner_entindex = 2;
     */
    public int getSpawnerEntindex() {
      return spawnerEntindex_;
    }

    public static final int UNIT_ENTINDEX_FIELD_NUMBER = 3;
    private int unitEntindex_;
    /**
     * optional int32 unit_entindex = 3;
     */
    public boolean hasUnitEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 unit_entindex = 3;
     */
    public int getUnitEntindex() {
      return unitEntindex_;
    }

    public static final int STACK_COUNT_FIELD_NUMBER = 4;
    private int stackCount_;
    /**
     * optional int32 stack_count = 4;
     */
    public boolean hasStackCount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 stack_count = 4;
     */
    public int getStackCount() {
      return stackCount_;
    }

    public static final int CAMP_TYPE_FIELD_NUMBER = 5;
    private int campType_;
    /**
     * optional int32 camp_type = 5;
     */
    public boolean hasCampType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 camp_type = 5;
     */
    public int getCampType() {
      return campType_;
    }

    public static final int STACK_REQUEST_FIELD_NUMBER = 6;
    private boolean stackRequest_;
    /**
     * optional bool stack_request = 6;
     */
    public boolean hasStackRequest() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool stack_request = 6;
     */
    public boolean getStackRequest() {
      return stackRequest_;
    }

    public static final int STACK_INTENTION_FIELD_NUMBER = 7;
    private boolean stackIntention_;
    /**
     * optional bool stack_intention = 7;
     */
    public boolean hasStackIntention() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool stack_intention = 7;
     */
    public boolean getStackIntention() {
      return stackIntention_;
    }

    private void initFields() {
      playerId_ = 0;
      spawnerEntindex_ = 0;
      unitEntindex_ = 0;
      stackCount_ = 0;
      campType_ = 0;
      stackRequest_ = false;
      stackIntention_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, spawnerEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, unitEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, stackCount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, campType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, stackRequest_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, stackIntention_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, spawnerEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, unitEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, stackCount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, campType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, stackRequest_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, stackIntention_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_NeutralCampAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_NeutralCampAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NeutralCampAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        spawnerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        unitEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        stackCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        campType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        stackRequest_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        stackIntention_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.spawnerEntindex_ = spawnerEntindex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.unitEntindex_ = unitEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.stackCount_ = stackCount_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.campType_ = campType_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.stackRequest_ = stackRequest_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.stackIntention_ = stackIntention_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasSpawnerEntindex()) {
          setSpawnerEntindex(other.getSpawnerEntindex());
        }
        if (other.hasUnitEntindex()) {
          setUnitEntindex(other.getUnitEntindex());
        }
        if (other.hasStackCount()) {
          setStackCount(other.getStackCount());
        }
        if (other.hasCampType()) {
          setCampType(other.getCampType());
        }
        if (other.hasStackRequest()) {
          setStackRequest(other.getStackRequest());
        }
        if (other.hasStackIntention()) {
          setStackIntention(other.getStackIntention());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NeutralCampAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int spawnerEntindex_ ;
      /**
       * optional int32 spawner_entindex = 2;
       */
      public boolean hasSpawnerEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 spawner_entindex = 2;
       */
      public int getSpawnerEntindex() {
        return spawnerEntindex_;
      }
      /**
       * optional int32 spawner_entindex = 2;
       */
      public Builder setSpawnerEntindex(int value) {
        bitField0_ |= 0x00000002;
        spawnerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 spawner_entindex = 2;
       */
      public Builder clearSpawnerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        spawnerEntindex_ = 0;
        onChanged();
        return this;
      }

      private int unitEntindex_ ;
      /**
       * optional int32 unit_entindex = 3;
       */
      public boolean hasUnitEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 unit_entindex = 3;
       */
      public int getUnitEntindex() {
        return unitEntindex_;
      }
      /**
       * optional int32 unit_entindex = 3;
       */
      public Builder setUnitEntindex(int value) {
        bitField0_ |= 0x00000004;
        unitEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 unit_entindex = 3;
       */
      public Builder clearUnitEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        unitEntindex_ = 0;
        onChanged();
        return this;
      }

      private int stackCount_ ;
      /**
       * optional int32 stack_count = 4;
       */
      public boolean hasStackCount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 stack_count = 4;
       */
      public int getStackCount() {
        return stackCount_;
      }
      /**
       * optional int32 stack_count = 4;
       */
      public Builder setStackCount(int value) {
        bitField0_ |= 0x00000008;
        stackCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 stack_count = 4;
       */
      public Builder clearStackCount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        stackCount_ = 0;
        onChanged();
        return this;
      }

      private int campType_ ;
      /**
       * optional int32 camp_type = 5;
       */
      public boolean hasCampType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 camp_type = 5;
       */
      public int getCampType() {
        return campType_;
      }
      /**
       * optional int32 camp_type = 5;
       */
      public Builder setCampType(int value) {
        bitField0_ |= 0x00000010;
        campType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 camp_type = 5;
       */
      public Builder clearCampType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        campType_ = 0;
        onChanged();
        return this;
      }

      private boolean stackRequest_ ;
      /**
       * optional bool stack_request = 6;
       */
      public boolean hasStackRequest() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool stack_request = 6;
       */
      public boolean getStackRequest() {
        return stackRequest_;
      }
      /**
       * optional bool stack_request = 6;
       */
      public Builder setStackRequest(boolean value) {
        bitField0_ |= 0x00000020;
        stackRequest_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool stack_request = 6;
       */
      public Builder clearStackRequest() {
        bitField0_ = (bitField0_ & ~0x00000020);
        stackRequest_ = false;
        onChanged();
        return this;
      }

      private boolean stackIntention_ ;
      /**
       * optional bool stack_intention = 7;
       */
      public boolean hasStackIntention() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool stack_intention = 7;
       */
      public boolean getStackIntention() {
        return stackIntention_;
      }
      /**
       * optional bool stack_intention = 7;
       */
      public Builder setStackIntention(boolean value) {
        bitField0_ |= 0x00000040;
        stackIntention_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool stack_intention = 7;
       */
      public Builder clearStackIntention() {
        bitField0_ = (bitField0_ & ~0x00000040);
        stackIntention_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_NeutralCampAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_NeutralCampAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_NeutralCampAlert)
  }

  public interface CDOTAUserMsg_GlyphAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GlyphAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool negative = 2;
     */
    boolean hasNegative();
    /**
     * optional bool negative = 2;
     */
    boolean getNegative();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GlyphAlert}
   */
  public static final class CDOTAUserMsg_GlyphAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GlyphAlert)
      CDOTAUserMsg_GlyphAlertOrBuilder {
    // Use CDOTAUserMsg_GlyphAlert.newBuilder() to construct.
    private CDOTAUserMsg_GlyphAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GlyphAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GlyphAlert defaultInstance;
    public static CDOTAUserMsg_GlyphAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GlyphAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GlyphAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              negative_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GlyphAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GlyphAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int NEGATIVE_FIELD_NUMBER = 2;
    private boolean negative_;
    /**
     * optional bool negative = 2;
     */
    public boolean hasNegative() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool negative = 2;
     */
    public boolean getNegative() {
      return negative_;
    }

    private void initFields() {
      playerId_ = 0;
      negative_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, negative_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, negative_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GlyphAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GlyphAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        negative_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.negative_ = negative_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasNegative()) {
          setNegative(other.getNegative());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GlyphAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean negative_ ;
      /**
       * optional bool negative = 2;
       */
      public boolean hasNegative() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool negative = 2;
       */
      public boolean getNegative() {
        return negative_;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder setNegative(boolean value) {
        bitField0_ |= 0x00000002;
        negative_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder clearNegative() {
        bitField0_ = (bitField0_ & ~0x00000002);
        negative_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GlyphAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GlyphAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GlyphAlert)
  }

  public interface CDOTAUserMsg_RadarAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RadarAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool negative = 2;
     */
    boolean hasNegative();
    /**
     * optional bool negative = 2;
     */
    boolean getNegative();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RadarAlert}
   */
  public static final class CDOTAUserMsg_RadarAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RadarAlert)
      CDOTAUserMsg_RadarAlertOrBuilder {
    // Use CDOTAUserMsg_RadarAlert.newBuilder() to construct.
    private CDOTAUserMsg_RadarAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RadarAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RadarAlert defaultInstance;
    public static CDOTAUserMsg_RadarAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RadarAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RadarAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              negative_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RadarAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RadarAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int NEGATIVE_FIELD_NUMBER = 2;
    private boolean negative_;
    /**
     * optional bool negative = 2;
     */
    public boolean hasNegative() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool negative = 2;
     */
    public boolean getNegative() {
      return negative_;
    }

    private void initFields() {
      playerId_ = 0;
      negative_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, negative_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, negative_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RadarAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RadarAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        negative_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RadarAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.negative_ = negative_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasNegative()) {
          setNegative(other.getNegative());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RadarAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean negative_ ;
      /**
       * optional bool negative = 2;
       */
      public boolean hasNegative() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool negative = 2;
       */
      public boolean getNegative() {
        return negative_;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder setNegative(boolean value) {
        bitField0_ |= 0x00000002;
        negative_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool negative = 2;
       */
      public Builder clearNegative() {
        bitField0_ = (bitField0_ & ~0x00000002);
        negative_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RadarAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RadarAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RadarAlert)
  }

  public interface CDOTAUserMsg_WillPurchaseAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WillPurchaseAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();

    /**
     * optional int32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 2;
     */
    int getPlayerId();

    /**
     * optional uint32 gold_remaining = 3;
     */
    boolean hasGoldRemaining();
    /**
     * optional uint32 gold_remaining = 3;
     */
    int getGoldRemaining();

    /**
     * optional int32 suggestion_player_id = 4;
     */
    boolean hasSuggestionPlayerId();
    /**
     * optional int32 suggestion_player_id = 4;
     */
    int getSuggestionPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
   */
  public static final class CDOTAUserMsg_WillPurchaseAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WillPurchaseAlert)
      CDOTAUserMsg_WillPurchaseAlertOrBuilder {
    // Use CDOTAUserMsg_WillPurchaseAlert.newBuilder() to construct.
    private CDOTAUserMsg_WillPurchaseAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WillPurchaseAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WillPurchaseAlert defaultInstance;
    public static CDOTAUserMsg_WillPurchaseAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WillPurchaseAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldRemaining_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              suggestionPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WillPurchaseAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WillPurchaseAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional int32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int GOLD_REMAINING_FIELD_NUMBER = 3;
    private int goldRemaining_;
    /**
     * optional uint32 gold_remaining = 3;
     */
    public boolean hasGoldRemaining() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 gold_remaining = 3;
     */
    public int getGoldRemaining() {
      return goldRemaining_;
    }

    public static final int SUGGESTION_PLAYER_ID_FIELD_NUMBER = 4;
    private int suggestionPlayerId_;
    /**
     * optional int32 suggestion_player_id = 4;
     */
    public boolean hasSuggestionPlayerId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 suggestion_player_id = 4;
     */
    public int getSuggestionPlayerId() {
      return suggestionPlayerId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
      playerId_ = 0;
      goldRemaining_ = 0;
      suggestionPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, goldRemaining_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, suggestionPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, goldRemaining_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, suggestionPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WillPurchaseAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WillPurchaseAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldRemaining_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        suggestionPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldRemaining_ = goldRemaining_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.suggestionPlayerId_ = suggestionPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasGoldRemaining()) {
          setGoldRemaining(other.getGoldRemaining());
        }
        if (other.hasSuggestionPlayerId()) {
          setSuggestionPlayerId(other.getSuggestionPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WillPurchaseAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional int32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int goldRemaining_ ;
      /**
       * optional uint32 gold_remaining = 3;
       */
      public boolean hasGoldRemaining() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public int getGoldRemaining() {
        return goldRemaining_;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder setGoldRemaining(int value) {
        bitField0_ |= 0x00000004;
        goldRemaining_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_remaining = 3;
       */
      public Builder clearGoldRemaining() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldRemaining_ = 0;
        onChanged();
        return this;
      }

      private int suggestionPlayerId_ ;
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public boolean hasSuggestionPlayerId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public int getSuggestionPlayerId() {
        return suggestionPlayerId_;
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public Builder setSuggestionPlayerId(int value) {
        bitField0_ |= 0x00000008;
        suggestionPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 suggestion_player_id = 4;
       */
      public Builder clearSuggestionPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        suggestionPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WillPurchaseAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WillPurchaseAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WillPurchaseAlert)
  }

  public interface CDOTAUserMsg_EmptyTeleportAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EmptyTeleportAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 cooldown_seconds = 3;
     */
    boolean hasCooldownSeconds();
    /**
     * optional int32 cooldown_seconds = 3;
     */
    int getCooldownSeconds();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EmptyTeleportAlert}
   */
  public static final class CDOTAUserMsg_EmptyTeleportAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EmptyTeleportAlert)
      CDOTAUserMsg_EmptyTeleportAlertOrBuilder {
    // Use CDOTAUserMsg_EmptyTeleportAlert.newBuilder() to construct.
    private CDOTAUserMsg_EmptyTeleportAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EmptyTeleportAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EmptyTeleportAlert defaultInstance;
    public static CDOTAUserMsg_EmptyTeleportAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EmptyTeleportAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EmptyTeleportAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              cooldownSeconds_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EmptyTeleportAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EmptyTeleportAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 3;
    private int cooldownSeconds_;
    /**
     * optional int32 cooldown_seconds = 3;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 cooldown_seconds = 3;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      cooldownSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, cooldownSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, cooldownSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EmptyTeleportAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EmptyTeleportAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyTeleportAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000004;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cooldown_seconds = 3;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EmptyTeleportAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EmptyTeleportAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EmptyTeleportAlert)
  }

  public interface CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MarsArenaOfBloodAttack)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 source_ehandle = 1;
     */
    boolean hasSourceEhandle();
    /**
     * optional uint32 source_ehandle = 1;
     */
    int getSourceEhandle();

    /**
     * optional uint32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional uint32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional int32 warrior_index = 3;
     */
    boolean hasWarriorIndex();
    /**
     * optional int32 warrior_index = 3;
     */
    int getWarriorIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MarsArenaOfBloodAttack}
   */
  public static final class CDOTAUserMsg_MarsArenaOfBloodAttack extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MarsArenaOfBloodAttack)
      CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder {
    // Use CDOTAUserMsg_MarsArenaOfBloodAttack.newBuilder() to construct.
    private CDOTAUserMsg_MarsArenaOfBloodAttack(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MarsArenaOfBloodAttack(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MarsArenaOfBloodAttack defaultInstance;
    public static CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MarsArenaOfBloodAttack(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourceEhandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              warriorIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MarsArenaOfBloodAttack parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MarsArenaOfBloodAttack(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_EHANDLE_FIELD_NUMBER = 1;
    private int sourceEhandle_;
    /**
     * optional uint32 source_ehandle = 1;
     */
    public boolean hasSourceEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 source_ehandle = 1;
     */
    public int getSourceEhandle() {
      return sourceEhandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional uint32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int WARRIOR_INDEX_FIELD_NUMBER = 3;
    private int warriorIndex_;
    /**
     * optional int32 warrior_index = 3;
     */
    public boolean hasWarriorIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 warrior_index = 3;
     */
    public int getWarriorIndex() {
      return warriorIndex_;
    }

    private void initFields() {
      sourceEhandle_ = 0;
      targetEhandle_ = 0;
      warriorIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, sourceEhandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, warriorIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, sourceEhandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, warriorIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MarsArenaOfBloodAttack}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MarsArenaOfBloodAttack)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttackOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourceEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        warriorIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourceEhandle_ = sourceEhandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.warriorIndex_ = warriorIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack.getDefaultInstance()) return this;
        if (other.hasSourceEhandle()) {
          setSourceEhandle(other.getSourceEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasWarriorIndex()) {
          setWarriorIndex(other.getWarriorIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MarsArenaOfBloodAttack) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourceEhandle_ ;
      /**
       * optional uint32 source_ehandle = 1;
       */
      public boolean hasSourceEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 source_ehandle = 1;
       */
      public int getSourceEhandle() {
        return sourceEhandle_;
      }
      /**
       * optional uint32 source_ehandle = 1;
       */
      public Builder setSourceEhandle(int value) {
        bitField0_ |= 0x00000001;
        sourceEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 source_ehandle = 1;
       */
      public Builder clearSourceEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourceEhandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional uint32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int warriorIndex_ ;
      /**
       * optional int32 warrior_index = 3;
       */
      public boolean hasWarriorIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public int getWarriorIndex() {
        return warriorIndex_;
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public Builder setWarriorIndex(int value) {
        bitField0_ |= 0x00000004;
        warriorIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 warrior_index = 3;
       */
      public Builder clearWarriorIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        warriorIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MarsArenaOfBloodAttack)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MarsArenaOfBloodAttack(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MarsArenaOfBloodAttack)
  }

  public interface CDOTAEntityMsg_InvokerSpellCastOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAEntityMsg_InvokerSpellCast)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    boolean hasEntityMsg();
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg getEntityMsg();
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder();

    /**
     * optional int32 cast_activity = 2;
     */
    boolean hasCastActivity();
    /**
     * optional int32 cast_activity = 2;
     */
    int getCastActivity();
  }
  /**
   * Protobuf type {@code CDOTAEntityMsg_InvokerSpellCast}
   */
  public static final class CDOTAEntityMsg_InvokerSpellCast extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAEntityMsg_InvokerSpellCast)
      CDOTAEntityMsg_InvokerSpellCastOrBuilder {
    // Use CDOTAEntityMsg_InvokerSpellCast.newBuilder() to construct.
    private CDOTAEntityMsg_InvokerSpellCast(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAEntityMsg_InvokerSpellCast(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAEntityMsg_InvokerSpellCast defaultInstance;
    public static CDOTAEntityMsg_InvokerSpellCast getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAEntityMsg_InvokerSpellCast getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAEntityMsg_InvokerSpellCast(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = entityMsg_.toBuilder();
              }
              entityMsg_ = input.readMessage(skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(entityMsg_);
                entityMsg_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              castActivity_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAEntityMsg_InvokerSpellCast parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAEntityMsg_InvokerSpellCast(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_MSG_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg entityMsg_;
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public boolean hasEntityMsg() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg getEntityMsg() {
      return entityMsg_;
    }
    /**
     * optional .CEntityMsg entity_msg = 1;
     */
    public skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder() {
      return entityMsg_;
    }

    public static final int CAST_ACTIVITY_FIELD_NUMBER = 2;
    private int castActivity_;
    /**
     * optional int32 cast_activity = 2;
     */
    public boolean hasCastActivity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 cast_activity = 2;
     */
    public int getCastActivity() {
      return castActivity_;
    }

    private void initFields() {
      entityMsg_ = skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.getDefaultInstance();
      castActivity_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, entityMsg_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, castActivity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, entityMsg_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, castActivity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAEntityMsg_InvokerSpellCast}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAEntityMsg_InvokerSpellCast)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCastOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntityMsgFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (entityMsgBuilder_ == null) {
          entityMsg_ = skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.getDefaultInstance();
        } else {
          entityMsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        castActivity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (entityMsgBuilder_ == null) {
          result.entityMsg_ = entityMsg_;
        } else {
          result.entityMsg_ = entityMsgBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.castActivity_ = castActivity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast.getDefaultInstance()) return this;
        if (other.hasEntityMsg()) {
          mergeEntityMsg(other.getEntityMsg());
        }
        if (other.hasCastActivity()) {
          setCastActivity(other.getCastActivity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAEntityMsg_InvokerSpellCast) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg entityMsg_ = skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder> entityMsgBuilder_;
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public boolean hasEntityMsg() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg getEntityMsg() {
        if (entityMsgBuilder_ == null) {
          return entityMsg_;
        } else {
          return entityMsgBuilder_.getMessage();
        }
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder setEntityMsg(skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg value) {
        if (entityMsgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          entityMsg_ = value;
          onChanged();
        } else {
          entityMsgBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder setEntityMsg(
          skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder builderForValue) {
        if (entityMsgBuilder_ == null) {
          entityMsg_ = builderForValue.build();
          onChanged();
        } else {
          entityMsgBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder mergeEntityMsg(skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg value) {
        if (entityMsgBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              entityMsg_ != skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.getDefaultInstance()) {
            entityMsg_ =
              skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.newBuilder(entityMsg_).mergeFrom(value).buildPartial();
          } else {
            entityMsg_ = value;
          }
          onChanged();
        } else {
          entityMsgBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public Builder clearEntityMsg() {
        if (entityMsgBuilder_ == null) {
          entityMsg_ = skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.getDefaultInstance();
          onChanged();
        } else {
          entityMsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder getEntityMsgBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getEntityMsgFieldBuilder().getBuilder();
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      public skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder getEntityMsgOrBuilder() {
        if (entityMsgBuilder_ != null) {
          return entityMsgBuilder_.getMessageOrBuilder();
        } else {
          return entityMsg_;
        }
      }
      /**
       * optional .CEntityMsg entity_msg = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder> 
          getEntityMsgFieldBuilder() {
        if (entityMsgBuilder_ == null) {
          entityMsgBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsg.Builder, skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.CEntityMsgOrBuilder>(
                  getEntityMsg(),
                  getParentForChildren(),
                  isClean());
          entityMsg_ = null;
        }
        return entityMsgBuilder_;
      }

      private int castActivity_ ;
      /**
       * optional int32 cast_activity = 2;
       */
      public boolean hasCastActivity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public int getCastActivity() {
        return castActivity_;
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public Builder setCastActivity(int value) {
        bitField0_ |= 0x00000002;
        castActivity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cast_activity = 2;
       */
      public Builder clearCastActivity() {
        bitField0_ = (bitField0_ & ~0x00000002);
        castActivity_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAEntityMsg_InvokerSpellCast)
    }

    static {
      defaultInstance = new CDOTAEntityMsg_InvokerSpellCast(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAEntityMsg_InvokerSpellCast)
  }

  public interface CDOTAUserMsg_BuyBackStateAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_BuyBackStateAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1 [default = -1];
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_BuyBackStateAlert}
   */
  public static final class CDOTAUserMsg_BuyBackStateAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_BuyBackStateAlert)
      CDOTAUserMsg_BuyBackStateAlertOrBuilder {
    // Use CDOTAUserMsg_BuyBackStateAlert.newBuilder() to construct.
    private CDOTAUserMsg_BuyBackStateAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_BuyBackStateAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_BuyBackStateAlert defaultInstance;
    public static CDOTAUserMsg_BuyBackStateAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_BuyBackStateAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_BuyBackStateAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_BuyBackStateAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_BuyBackStateAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_BuyBackStateAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_BuyBackStateAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_BuyBackStateAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ = -1;
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_BuyBackStateAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_BuyBackStateAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_BuyBackStateAlert)
  }

  public interface CDOTAUserMsg_QuickBuyAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QuickBuyAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 item_ability_id = 2;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 2;
     */
    int getItemAbilityId();

    /**
     * optional int32 gold_cost = 3;
     */
    boolean hasGoldCost();
    /**
     * optional int32 gold_cost = 3;
     */
    int getGoldCost();

    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    boolean hasItemCooldownSeconds();
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    int getItemCooldownSeconds();

    /**
     * optional bool show_buyback = 5;
     */
    boolean hasShowBuyback();
    /**
     * optional bool show_buyback = 5;
     */
    boolean getShowBuyback();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
   */
  public static final class CDOTAUserMsg_QuickBuyAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QuickBuyAlert)
      CDOTAUserMsg_QuickBuyAlertOrBuilder {
    // Use CDOTAUserMsg_QuickBuyAlert.newBuilder() to construct.
    private CDOTAUserMsg_QuickBuyAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QuickBuyAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QuickBuyAlert defaultInstance;
    public static CDOTAUserMsg_QuickBuyAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QuickBuyAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              goldCost_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              itemCooldownSeconds_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              showBuyback_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QuickBuyAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QuickBuyAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 2;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 2;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 item_ability_id = 2;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int GOLD_COST_FIELD_NUMBER = 3;
    private int goldCost_;
    /**
     * optional int32 gold_cost = 3;
     */
    public boolean hasGoldCost() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 gold_cost = 3;
     */
    public int getGoldCost() {
      return goldCost_;
    }

    public static final int ITEM_COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int itemCooldownSeconds_;
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    public boolean hasItemCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 item_cooldown_seconds = 4;
     */
    public int getItemCooldownSeconds() {
      return itemCooldownSeconds_;
    }

    public static final int SHOW_BUYBACK_FIELD_NUMBER = 5;
    private boolean showBuyback_;
    /**
     * optional bool show_buyback = 5;
     */
    public boolean hasShowBuyback() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool show_buyback = 5;
     */
    public boolean getShowBuyback() {
      return showBuyback_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAbilityId_ = 0;
      goldCost_ = 0;
      itemCooldownSeconds_ = 0;
      showBuyback_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, goldCost_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, itemCooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, showBuyback_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, goldCost_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, itemCooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, showBuyback_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QuickBuyAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QuickBuyAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        goldCost_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        itemCooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        showBuyback_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.goldCost_ = goldCost_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.itemCooldownSeconds_ = itemCooldownSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.showBuyback_ = showBuyback_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasGoldCost()) {
          setGoldCost(other.getGoldCost());
        }
        if (other.hasItemCooldownSeconds()) {
          setItemCooldownSeconds(other.getItemCooldownSeconds());
        }
        if (other.hasShowBuyback()) {
          setShowBuyback(other.getShowBuyback());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QuickBuyAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 2;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000002;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int goldCost_ ;
      /**
       * optional int32 gold_cost = 3;
       */
      public boolean hasGoldCost() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public int getGoldCost() {
        return goldCost_;
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public Builder setGoldCost(int value) {
        bitField0_ |= 0x00000004;
        goldCost_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gold_cost = 3;
       */
      public Builder clearGoldCost() {
        bitField0_ = (bitField0_ & ~0x00000004);
        goldCost_ = 0;
        onChanged();
        return this;
      }

      private int itemCooldownSeconds_ ;
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public boolean hasItemCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public int getItemCooldownSeconds() {
        return itemCooldownSeconds_;
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public Builder setItemCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        itemCooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_cooldown_seconds = 4;
       */
      public Builder clearItemCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        itemCooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      private boolean showBuyback_ ;
      /**
       * optional bool show_buyback = 5;
       */
      public boolean hasShowBuyback() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool show_buyback = 5;
       */
      public boolean getShowBuyback() {
        return showBuyback_;
      }
      /**
       * optional bool show_buyback = 5;
       */
      public Builder setShowBuyback(boolean value) {
        bitField0_ |= 0x00000010;
        showBuyback_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool show_buyback = 5;
       */
      public Builder clearShowBuyback() {
        bitField0_ = (bitField0_ & ~0x00000010);
        showBuyback_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QuickBuyAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QuickBuyAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QuickBuyAlert)
  }

  public interface CDOTAUserMsg_CourierKilledAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CourierKilledAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team = 1;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 1;
     */
    int getTeam();

    /**
     * optional uint32 gold_value = 2;
     */
    boolean hasGoldValue();
    /**
     * optional uint32 gold_value = 2;
     */
    int getGoldValue();

    /**
     * optional int32 entity_handle = 3;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 3;
     */
    int getEntityHandle();

    /**
     * optional int32 timestamp = 4;
     */
    boolean hasTimestamp();
    /**
     * optional int32 timestamp = 4;
     */
    int getTimestamp();

    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    java.util.List 
        getLostItemsList();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index);
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    int getLostItemsCount();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    java.util.List 
        getLostItemsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
        int index);

    /**
     * optional int32 killer_player_id = 6;
     */
    boolean hasKillerPlayerId();
    /**
     * optional int32 killer_player_id = 6;
     */
    int getKillerPlayerId();

    /**
     * optional int32 owning_player_id = 7;
     */
    boolean hasOwningPlayerId();
    /**
     * optional int32 owning_player_id = 7;
     */
    int getOwningPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
   */
  public static final class CDOTAUserMsg_CourierKilledAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CourierKilledAlert)
      CDOTAUserMsg_CourierKilledAlertOrBuilder {
    // Use CDOTAUserMsg_CourierKilledAlert.newBuilder() to construct.
    private CDOTAUserMsg_CourierKilledAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CourierKilledAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CourierKilledAlert defaultInstance;
    public static CDOTAUserMsg_CourierKilledAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CourierKilledAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              team_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              goldValue_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              entityHandle_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              timestamp_ = input.readInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                lostItems_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              lostItems_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.PARSER, extensionRegistry));
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              killerPlayerId_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              owningPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          lostItems_ = java.util.Collections.unmodifiableList(lostItems_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CourierKilledAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CourierKilledAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface LostItemOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CourierKilledAlert.LostItem)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 item_ability_id = 1;
       */
      boolean hasItemAbilityId();
      /**
       * optional int32 item_ability_id = 1;
       */
      int getItemAbilityId();

      /**
       * optional uint32 quantity = 2;
       */
      boolean hasQuantity();
      /**
       * optional uint32 quantity = 2;
       */
      int getQuantity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert.LostItem}
     */
    public static final class LostItem extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CourierKilledAlert.LostItem)
        LostItemOrBuilder {
      // Use LostItem.newBuilder() to construct.
      private LostItem(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private LostItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final LostItem defaultInstance;
      public static LostItem getDefaultInstance() {
        return defaultInstance;
      }

      public LostItem getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private LostItem(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                itemAbilityId_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                quantity_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public LostItem parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new LostItem(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
      private int itemAbilityId_;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }

      public static final int QUANTITY_FIELD_NUMBER = 2;
      private int quantity_;
      /**
       * optional uint32 quantity = 2;
       */
      public boolean hasQuantity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 quantity = 2;
       */
      public int getQuantity() {
        return quantity_;
      }

      private void initFields() {
        itemAbilityId_ = 0;
        quantity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, itemAbilityId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, quantity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, itemAbilityId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, quantity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert.LostItem}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CourierKilledAlert.LostItem)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          itemAbilityId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          quantity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.itemAbilityId_ = itemAbilityId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.quantity_ = quantity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance()) return this;
          if (other.hasItemAbilityId()) {
            setItemAbilityId(other.getItemAbilityId());
          }
          if (other.hasQuantity()) {
            setQuantity(other.getQuantity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int itemAbilityId_ ;
        /**
         * optional int32 item_ability_id = 1;
         */
        public boolean hasItemAbilityId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public int getItemAbilityId() {
          return itemAbilityId_;
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public Builder setItemAbilityId(int value) {
          bitField0_ |= 0x00000001;
          itemAbilityId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 item_ability_id = 1;
         */
        public Builder clearItemAbilityId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          itemAbilityId_ = 0;
          onChanged();
          return this;
        }

        private int quantity_ ;
        /**
         * optional uint32 quantity = 2;
         */
        public boolean hasQuantity() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 quantity = 2;
         */
        public int getQuantity() {
          return quantity_;
        }
        /**
         * optional uint32 quantity = 2;
         */
        public Builder setQuantity(int value) {
          bitField0_ |= 0x00000002;
          quantity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 quantity = 2;
         */
        public Builder clearQuantity() {
          bitField0_ = (bitField0_ & ~0x00000002);
          quantity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CourierKilledAlert.LostItem)
      }

      static {
        defaultInstance = new LostItem(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CourierKilledAlert.LostItem)
    }

    private int bitField0_;
    public static final int TEAM_FIELD_NUMBER = 1;
    private int team_;
    /**
     * optional uint32 team = 1;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team = 1;
     */
    public int getTeam() {
      return team_;
    }

    public static final int GOLD_VALUE_FIELD_NUMBER = 2;
    private int goldValue_;
    /**
     * optional uint32 gold_value = 2;
     */
    public boolean hasGoldValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 gold_value = 2;
     */
    public int getGoldValue() {
      return goldValue_;
    }

    public static final int ENTITY_HANDLE_FIELD_NUMBER = 3;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 3;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 entity_handle = 3;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 4;
    private int timestamp_;
    /**
     * optional int32 timestamp = 4;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 timestamp = 4;
     */
    public int getTimestamp() {
      return timestamp_;
    }

    public static final int LOST_ITEMS_FIELD_NUMBER = 5;
    private java.util.List lostItems_;
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public java.util.List getLostItemsList() {
      return lostItems_;
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public java.util.List 
        getLostItemsOrBuilderList() {
      return lostItems_;
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public int getLostItemsCount() {
      return lostItems_.size();
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index) {
      return lostItems_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
        int index) {
      return lostItems_.get(index);
    }

    public static final int KILLER_PLAYER_ID_FIELD_NUMBER = 6;
    private int killerPlayerId_;
    /**
     * optional int32 killer_player_id = 6;
     */
    public boolean hasKillerPlayerId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 killer_player_id = 6;
     */
    public int getKillerPlayerId() {
      return killerPlayerId_;
    }

    public static final int OWNING_PLAYER_ID_FIELD_NUMBER = 7;
    private int owningPlayerId_;
    /**
     * optional int32 owning_player_id = 7;
     */
    public boolean hasOwningPlayerId() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 owning_player_id = 7;
     */
    public int getOwningPlayerId() {
      return owningPlayerId_;
    }

    private void initFields() {
      team_ = 0;
      goldValue_ = 0;
      entityHandle_ = 0;
      timestamp_ = 0;
      lostItems_ = java.util.Collections.emptyList();
      killerPlayerId_ = 0;
      owningPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, timestamp_);
      }
      for (int i = 0; i < lostItems_.size(); i++) {
        output.writeMessage(5, lostItems_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, killerPlayerId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(7, owningPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, goldValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, entityHandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, timestamp_);
      }
      for (int i = 0; i < lostItems_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, lostItems_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, killerPlayerId_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, owningPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CourierKilledAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CourierKilledAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getLostItemsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        goldValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        timestamp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (lostItemsBuilder_ == null) {
          lostItems_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          lostItemsBuilder_.clear();
        }
        killerPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        owningPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.team_ = team_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.goldValue_ = goldValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.timestamp_ = timestamp_;
        if (lostItemsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            lostItems_ = java.util.Collections.unmodifiableList(lostItems_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.lostItems_ = lostItems_;
        } else {
          result.lostItems_ = lostItemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.killerPlayerId_ = killerPlayerId_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.owningPlayerId_ = owningPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.getDefaultInstance()) return this;
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        if (other.hasGoldValue()) {
          setGoldValue(other.getGoldValue());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (lostItemsBuilder_ == null) {
          if (!other.lostItems_.isEmpty()) {
            if (lostItems_.isEmpty()) {
              lostItems_ = other.lostItems_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureLostItemsIsMutable();
              lostItems_.addAll(other.lostItems_);
            }
            onChanged();
          }
        } else {
          if (!other.lostItems_.isEmpty()) {
            if (lostItemsBuilder_.isEmpty()) {
              lostItemsBuilder_.dispose();
              lostItemsBuilder_ = null;
              lostItems_ = other.lostItems_;
              bitField0_ = (bitField0_ & ~0x00000010);
              lostItemsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getLostItemsFieldBuilder() : null;
            } else {
              lostItemsBuilder_.addAllMessages(other.lostItems_);
            }
          }
        }
        if (other.hasKillerPlayerId()) {
          setKillerPlayerId(other.getKillerPlayerId());
        }
        if (other.hasOwningPlayerId()) {
          setOwningPlayerId(other.getOwningPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int team_ ;
      /**
       * optional uint32 team = 1;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team = 1;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000001;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        onChanged();
        return this;
      }

      private int goldValue_ ;
      /**
       * optional uint32 gold_value = 2;
       */
      public boolean hasGoldValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public int getGoldValue() {
        return goldValue_;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder setGoldValue(int value) {
        bitField0_ |= 0x00000002;
        goldValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_value = 2;
       */
      public Builder clearGoldValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        goldValue_ = 0;
        onChanged();
        return this;
      }

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 3;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000004;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 3;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int timestamp_ ;
      /**
       * optional int32 timestamp = 4;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 timestamp = 4;
       */
      public int getTimestamp() {
        return timestamp_;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder setTimestamp(int value) {
        bitField0_ |= 0x00000008;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 timestamp = 4;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00000008);
        timestamp_ = 0;
        onChanged();
        return this;
      }

      private java.util.List lostItems_ =
        java.util.Collections.emptyList();
      private void ensureLostItemsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          lostItems_ = new java.util.ArrayList(lostItems_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder> lostItemsBuilder_;

      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List getLostItemsList() {
        if (lostItemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(lostItems_);
        } else {
          return lostItemsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public int getLostItemsCount() {
        if (lostItemsBuilder_ == null) {
          return lostItems_.size();
        } else {
          return lostItemsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem getLostItems(int index) {
        if (lostItemsBuilder_ == null) {
          return lostItems_.get(index);
        } else {
          return lostItemsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder setLostItems(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.set(index, value);
          onChanged();
        } else {
          lostItemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder setLostItems(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.set(index, builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.add(value);
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem value) {
        if (lostItemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLostItemsIsMutable();
          lostItems_.add(index, value);
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.add(builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addLostItems(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder builderForValue) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.add(index, builderForValue.build());
          onChanged();
        } else {
          lostItemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder addAllLostItems(
          java.lang.Iterable values) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, lostItems_);
          onChanged();
        } else {
          lostItemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder clearLostItems() {
        if (lostItemsBuilder_ == null) {
          lostItems_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          lostItemsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public Builder removeLostItems(int index) {
        if (lostItemsBuilder_ == null) {
          ensureLostItemsIsMutable();
          lostItems_.remove(index);
          onChanged();
        } else {
          lostItemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder getLostItemsBuilder(
          int index) {
        return getLostItemsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder getLostItemsOrBuilder(
          int index) {
        if (lostItemsBuilder_ == null) {
          return lostItems_.get(index);  } else {
          return lostItemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List 
           getLostItemsOrBuilderList() {
        if (lostItemsBuilder_ != null) {
          return lostItemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(lostItems_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder addLostItemsBuilder() {
        return getLostItemsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder addLostItemsBuilder(
          int index) {
        return getLostItemsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_CourierKilledAlert.LostItem lost_items = 5;
       */
      public java.util.List 
           getLostItemsBuilderList() {
        return getLostItemsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder> 
          getLostItemsFieldBuilder() {
        if (lostItemsBuilder_ == null) {
          lostItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItem.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CourierKilledAlert.LostItemOrBuilder>(
                  lostItems_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          lostItems_ = null;
        }
        return lostItemsBuilder_;
      }

      private int killerPlayerId_ ;
      /**
       * optional int32 killer_player_id = 6;
       */
      public boolean hasKillerPlayerId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public int getKillerPlayerId() {
        return killerPlayerId_;
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public Builder setKillerPlayerId(int value) {
        bitField0_ |= 0x00000020;
        killerPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 killer_player_id = 6;
       */
      public Builder clearKillerPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        killerPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int owningPlayerId_ ;
      /**
       * optional int32 owning_player_id = 7;
       */
      public boolean hasOwningPlayerId() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public int getOwningPlayerId() {
        return owningPlayerId_;
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public Builder setOwningPlayerId(int value) {
        bitField0_ |= 0x00000040;
        owningPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 owning_player_id = 7;
       */
      public Builder clearOwningPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000040);
        owningPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CourierKilledAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CourierKilledAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CourierKilledAlert)
  }

  public interface CDOTAUserMsg_MinimapEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MinimapEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 event_type = 1;
     */
    boolean hasEventType();
    /**
     * optional int32 event_type = 1;
     */
    int getEventType();

    /**
     * optional int32 entity_handle = 2;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 2;
     */
    int getEntityHandle();

    /**
     * optional int32 x = 3;
     */
    boolean hasX();
    /**
     * optional int32 x = 3;
     */
    int getX();

    /**
     * optional int32 y = 4;
     */
    boolean hasY();
    /**
     * optional int32 y = 4;
     */
    int getY();

    /**
     * optional int32 duration = 5;
     */
    boolean hasDuration();
    /**
     * optional int32 duration = 5;
     */
    int getDuration();

    /**
     * optional uint32 target_entity_handle = 6;
     */
    boolean hasTargetEntityHandle();
    /**
     * optional uint32 target_entity_handle = 6;
     */
    int getTargetEntityHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
   */
  public static final class CDOTAUserMsg_MinimapEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MinimapEvent)
      CDOTAUserMsg_MinimapEventOrBuilder {
    // Use CDOTAUserMsg_MinimapEvent.newBuilder() to construct.
    private CDOTAUserMsg_MinimapEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MinimapEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MinimapEvent defaultInstance;
    public static CDOTAUserMsg_MinimapEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MinimapEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              eventType_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityHandle_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              x_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              y_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              duration_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetEntityHandle_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MinimapEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MinimapEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EVENT_TYPE_FIELD_NUMBER = 1;
    private int eventType_;
    /**
     * optional int32 event_type = 1;
     */
    public boolean hasEventType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 event_type = 1;
     */
    public int getEventType() {
      return eventType_;
    }

    public static final int ENTITY_HANDLE_FIELD_NUMBER = 2;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 2;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 entity_handle = 2;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int X_FIELD_NUMBER = 3;
    private int x_;
    /**
     * optional int32 x = 3;
     */
    public boolean hasX() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 x = 3;
     */
    public int getX() {
      return x_;
    }

    public static final int Y_FIELD_NUMBER = 4;
    private int y_;
    /**
     * optional int32 y = 4;
     */
    public boolean hasY() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 y = 4;
     */
    public int getY() {
      return y_;
    }

    public static final int DURATION_FIELD_NUMBER = 5;
    private int duration_;
    /**
     * optional int32 duration = 5;
     */
    public boolean hasDuration() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 duration = 5;
     */
    public int getDuration() {
      return duration_;
    }

    public static final int TARGET_ENTITY_HANDLE_FIELD_NUMBER = 6;
    private int targetEntityHandle_;
    /**
     * optional uint32 target_entity_handle = 6;
     */
    public boolean hasTargetEntityHandle() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 target_entity_handle = 6;
     */
    public int getTargetEntityHandle() {
      return targetEntityHandle_;
    }

    private void initFields() {
      eventType_ = 0;
      entityHandle_ = 0;
      x_ = 0;
      y_ = 0;
      duration_ = 0;
      targetEntityHandle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, duration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, targetEntityHandle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, eventType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, x_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, y_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, duration_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, targetEntityHandle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MinimapEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MinimapEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        eventType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        x_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        y_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        duration_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetEntityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.eventType_ = eventType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.x_ = x_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.y_ = y_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.duration_ = duration_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetEntityHandle_ = targetEntityHandle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent.getDefaultInstance()) return this;
        if (other.hasEventType()) {
          setEventType(other.getEventType());
        }
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasX()) {
          setX(other.getX());
        }
        if (other.hasY()) {
          setY(other.getY());
        }
        if (other.hasDuration()) {
          setDuration(other.getDuration());
        }
        if (other.hasTargetEntityHandle()) {
          setTargetEntityHandle(other.getTargetEntityHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MinimapEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int eventType_ ;
      /**
       * optional int32 event_type = 1;
       */
      public boolean hasEventType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 event_type = 1;
       */
      public int getEventType() {
        return eventType_;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder setEventType(int value) {
        bitField0_ |= 0x00000001;
        eventType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 event_type = 1;
       */
      public Builder clearEventType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eventType_ = 0;
        onChanged();
        return this;
      }

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 2;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000002;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 2;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int x_ ;
      /**
       * optional int32 x = 3;
       */
      public boolean hasX() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 x = 3;
       */
      public int getX() {
        return x_;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder setX(int value) {
        bitField0_ |= 0x00000004;
        x_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 x = 3;
       */
      public Builder clearX() {
        bitField0_ = (bitField0_ & ~0x00000004);
        x_ = 0;
        onChanged();
        return this;
      }

      private int y_ ;
      /**
       * optional int32 y = 4;
       */
      public boolean hasY() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 y = 4;
       */
      public int getY() {
        return y_;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder setY(int value) {
        bitField0_ |= 0x00000008;
        y_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 y = 4;
       */
      public Builder clearY() {
        bitField0_ = (bitField0_ & ~0x00000008);
        y_ = 0;
        onChanged();
        return this;
      }

      private int duration_ ;
      /**
       * optional int32 duration = 5;
       */
      public boolean hasDuration() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 duration = 5;
       */
      public int getDuration() {
        return duration_;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder setDuration(int value) {
        bitField0_ |= 0x00000010;
        duration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 duration = 5;
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000010);
        duration_ = 0;
        onChanged();
        return this;
      }

      private int targetEntityHandle_ ;
      /**
       * optional uint32 target_entity_handle = 6;
       */
      public boolean hasTargetEntityHandle() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 target_entity_handle = 6;
       */
      public int getTargetEntityHandle() {
        return targetEntityHandle_;
      }
      /**
       * optional uint32 target_entity_handle = 6;
       */
      public Builder setTargetEntityHandle(int value) {
        bitField0_ |= 0x00000020;
        targetEntityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_entity_handle = 6;
       */
      public Builder clearTargetEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetEntityHandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MinimapEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MinimapEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MinimapEvent)
  }

  public interface CDOTAUserMsg_MapLineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MapLine)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    boolean hasMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine getMapline();
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MapLine}
   */
  public static final class CDOTAUserMsg_MapLine extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MapLine)
      CDOTAUserMsg_MapLineOrBuilder {
    // Use CDOTAUserMsg_MapLine.newBuilder() to construct.
    private CDOTAUserMsg_MapLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MapLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MapLine defaultInstance;
    public static CDOTAUserMsg_MapLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MapLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MapLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = mapline_.toBuilder();
              }
              mapline_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(mapline_);
                mapline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MapLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MapLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int MAPLINE_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine mapline_;
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public boolean hasMapline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine getMapline() {
      return mapline_;
    }
    /**
     * optional .CDOTAMsg_MapLine mapline = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
      return mapline_;
    }

    private void initFields() {
      playerId_ = 0;
      mapline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, mapline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, mapline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MapLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MapLine)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getMaplineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (maplineBuilder_ == null) {
          mapline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MapLine_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (maplineBuilder_ == null) {
          result.mapline_ = mapline_;
        } else {
          result.mapline_ = maplineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasMapline()) {
          mergeMapline(other.getMapline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MapLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine mapline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder> maplineBuilder_;
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public boolean hasMapline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine getMapline() {
        if (maplineBuilder_ == null) {
          return mapline_;
        } else {
          return maplineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          mapline_ = value;
          onChanged();
        } else {
          maplineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder setMapline(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder builderForValue) {
        if (maplineBuilder_ == null) {
          mapline_ = builderForValue.build();
          onChanged();
        } else {
          maplineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder mergeMapline(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine value) {
        if (maplineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              mapline_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.getDefaultInstance()) {
            mapline_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.newBuilder(mapline_).mergeFrom(value).buildPartial();
          } else {
            mapline_ = value;
          }
          onChanged();
        } else {
          maplineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public Builder clearMapline() {
        if (maplineBuilder_ == null) {
          mapline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.getDefaultInstance();
          onChanged();
        } else {
          maplineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder getMaplineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getMaplineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder getMaplineOrBuilder() {
        if (maplineBuilder_ != null) {
          return maplineBuilder_.getMessageOrBuilder();
        } else {
          return mapline_;
        }
      }
      /**
       * optional .CDOTAMsg_MapLine mapline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder> 
          getMaplineFieldBuilder() {
        if (maplineBuilder_ == null) {
          maplineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_MapLineOrBuilder>(
                  getMapline(),
                  getParentForChildren(),
                  isClean());
          mapline_ = null;
        }
        return maplineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MapLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MapLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MapLine)
  }

  public interface CDOTAUserMsg_CreateLinearProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_CreateLinearProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector origin = 1;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional .CMsgVector2D velocity = 2;
     */
    boolean hasVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getVelocity();
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder();

    /**
     * optional int32 latency = 3;
     */
    boolean hasLatency();
    /**
     * optional int32 latency = 3;
     */
    int getLatency();

    /**
     * optional int32 entindex = 4;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 4;
     */
    int getEntindex();

    /**
     * optional uint64 particle_index = 5;
     */
    boolean hasParticleIndex();
    /**
     * optional uint64 particle_index = 5;
     */
    long getParticleIndex();

    /**
     * optional int32 handle = 6;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 6;
     */
    int getHandle();

    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    boolean hasAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getAcceleration();
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder();

    /**
     * optional float max_speed = 8;
     */
    boolean hasMaxSpeed();
    /**
     * optional float max_speed = 8;
     */
    float getMaxSpeed();

    /**
     * optional float fow_radius = 9;
     */
    boolean hasFowRadius();
    /**
     * optional float fow_radius = 9;
     */
    float getFowRadius();

    /**
     * optional bool sticky_fow_reveal = 10;
     */
    boolean hasStickyFowReveal();
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    boolean getStickyFowReveal();

    /**
     * optional float distance = 11;
     */
    boolean hasDistance();
    /**
     * optional float distance = 11;
     */
    float getDistance();

    /**
     * optional fixed32 colorgemcolor = 12;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    int getColorgemcolor();

    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    java.util.List 
        getParticleCpDataList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index);
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    int getParticleCpDataCount();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    java.util.List 
        getParticleCpDataOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
   */
  public static final class CDOTAUserMsg_CreateLinearProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_CreateLinearProjectile)
      CDOTAUserMsg_CreateLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_CreateLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_CreateLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_CreateLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_CreateLinearProjectile defaultInstance;
    public static CDOTAUserMsg_CreateLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_CreateLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = velocity_.toBuilder();
              }
              velocity_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(velocity_);
                velocity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              latency_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              entindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              particleIndex_ = input.readUInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              handle_ = input.readInt32();
              break;
            }
            case 58: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = acceleration_.toBuilder();
              }
              acceleration_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(acceleration_);
                acceleration_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 69: {
              bitField0_ |= 0x00000080;
              maxSpeed_ = input.readFloat();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000100;
              fowRadius_ = input.readFloat();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              stickyFowReveal_ = input.readBool();
              break;
            }
            case 93: {
              bitField0_ |= 0x00000400;
              distance_ = input.readFloat();
              break;
            }
            case 101: {
              bitField0_ |= 0x00000800;
              colorgemcolor_ = input.readFixed32();
              break;
            }
            case 106: {
              if (!((mutable_bitField0_ & 0x00001000) == 0x00001000)) {
                particleCpData_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00001000;
              }
              particleCpData_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00001000) == 0x00001000)) {
          particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_CreateLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_CreateLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ORIGIN_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 1;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int VELOCITY_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D velocity_;
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public boolean hasVelocity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getVelocity() {
      return velocity_;
    }
    /**
     * optional .CMsgVector2D velocity = 2;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
      return velocity_;
    }

    public static final int LATENCY_FIELD_NUMBER = 3;
    private int latency_;
    /**
     * optional int32 latency = 3;
     */
    public boolean hasLatency() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 latency = 3;
     */
    public int getLatency() {
      return latency_;
    }

    public static final int ENTINDEX_FIELD_NUMBER = 4;
    private int entindex_;
    /**
     * optional int32 entindex = 4;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 entindex = 4;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int PARTICLE_INDEX_FIELD_NUMBER = 5;
    private long particleIndex_;
    /**
     * optional uint64 particle_index = 5;
     */
    public boolean hasParticleIndex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint64 particle_index = 5;
     */
    public long getParticleIndex() {
      return particleIndex_;
    }

    public static final int HANDLE_FIELD_NUMBER = 6;
    private int handle_;
    /**
     * optional int32 handle = 6;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 handle = 6;
     */
    public int getHandle() {
      return handle_;
    }

    public static final int ACCELERATION_FIELD_NUMBER = 7;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D acceleration_;
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public boolean hasAcceleration() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getAcceleration() {
      return acceleration_;
    }
    /**
     * optional .CMsgVector2D acceleration = 7;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
      return acceleration_;
    }

    public static final int MAX_SPEED_FIELD_NUMBER = 8;
    private float maxSpeed_;
    /**
     * optional float max_speed = 8;
     */
    public boolean hasMaxSpeed() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional float max_speed = 8;
     */
    public float getMaxSpeed() {
      return maxSpeed_;
    }

    public static final int FOW_RADIUS_FIELD_NUMBER = 9;
    private float fowRadius_;
    /**
     * optional float fow_radius = 9;
     */
    public boolean hasFowRadius() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional float fow_radius = 9;
     */
    public float getFowRadius() {
      return fowRadius_;
    }

    public static final int STICKY_FOW_REVEAL_FIELD_NUMBER = 10;
    private boolean stickyFowReveal_;
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    public boolean hasStickyFowReveal() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool sticky_fow_reveal = 10;
     */
    public boolean getStickyFowReveal() {
      return stickyFowReveal_;
    }

    public static final int DISTANCE_FIELD_NUMBER = 11;
    private float distance_;
    /**
     * optional float distance = 11;
     */
    public boolean hasDistance() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional float distance = 11;
     */
    public float getDistance() {
      return distance_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 12;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional fixed32 colorgemcolor = 12;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    public static final int PARTICLE_CP_DATA_FIELD_NUMBER = 13;
    private java.util.List particleCpData_;
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    public java.util.List getParticleCpDataList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    public java.util.List 
        getParticleCpDataOrBuilderList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    public int getParticleCpDataCount() {
      return particleCpData_.size();
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
      return particleCpData_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index) {
      return particleCpData_.get(index);
    }

    private void initFields() {
      origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      velocity_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      latency_ = 0;
      entindex_ = 0;
      particleIndex_ = 0L;
      handle_ = 0;
      acceleration_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      maxSpeed_ = 0F;
      fowRadius_ = 0F;
      stickyFowReveal_ = false;
      distance_ = 0F;
      colorgemcolor_ = 0;
      particleCpData_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt64(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeFloat(8, maxSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFloat(9, fowRadius_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, stickyFowReveal_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeFloat(11, distance_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeFixed32(12, colorgemcolor_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        output.writeMessage(13, particleCpData_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, origin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, velocity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, latency_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, entindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, particleIndex_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, handle_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, acceleration_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, maxSpeed_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, fowRadius_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, stickyFowReveal_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(11, distance_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(12, colorgemcolor_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, particleCpData_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_CreateLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_CreateLinearProjectile)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
          getVelocityFieldBuilder();
          getAccelerationFieldBuilder();
          getParticleCpDataFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (velocityBuilder_ == null) {
          velocity_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        latency_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        particleIndex_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (accelerationBuilder_ == null) {
          acceleration_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        maxSpeed_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        fowRadius_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        stickyFowReveal_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        distance_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000400);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
        } else {
          particleCpDataBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (velocityBuilder_ == null) {
          result.velocity_ = velocity_;
        } else {
          result.velocity_ = velocityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.latency_ = latency_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.particleIndex_ = particleIndex_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (accelerationBuilder_ == null) {
          result.acceleration_ = acceleration_;
        } else {
          result.acceleration_ = accelerationBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.maxSpeed_ = maxSpeed_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.fowRadius_ = fowRadius_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.stickyFowReveal_ = stickyFowReveal_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.distance_ = distance_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.colorgemcolor_ = colorgemcolor_;
        if (particleCpDataBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)) {
            particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
            bitField0_ = (bitField0_ & ~0x00001000);
          }
          result.particleCpData_ = particleCpData_;
        } else {
          result.particleCpData_ = particleCpDataBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile.getDefaultInstance()) return this;
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasVelocity()) {
          mergeVelocity(other.getVelocity());
        }
        if (other.hasLatency()) {
          setLatency(other.getLatency());
        }
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasParticleIndex()) {
          setParticleIndex(other.getParticleIndex());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasAcceleration()) {
          mergeAcceleration(other.getAcceleration());
        }
        if (other.hasMaxSpeed()) {
          setMaxSpeed(other.getMaxSpeed());
        }
        if (other.hasFowRadius()) {
          setFowRadius(other.getFowRadius());
        }
        if (other.hasStickyFowReveal()) {
          setStickyFowReveal(other.getStickyFowReveal());
        }
        if (other.hasDistance()) {
          setDistance(other.getDistance());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        if (particleCpDataBuilder_ == null) {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpData_.isEmpty()) {
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00001000);
            } else {
              ensureParticleCpDataIsMutable();
              particleCpData_.addAll(other.particleCpData_);
            }
            onChanged();
          }
        } else {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpDataBuilder_.isEmpty()) {
              particleCpDataBuilder_.dispose();
              particleCpDataBuilder_ = null;
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00001000);
              particleCpDataBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getParticleCpDataFieldBuilder() : null;
            } else {
              particleCpDataBuilder_.addAllMessages(other.particleCpData_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_CreateLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 1;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              origin_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D velocity_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder> velocityBuilder_;
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public boolean hasVelocity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getVelocity() {
        if (velocityBuilder_ == null) {
          return velocity_;
        } else {
          return velocityBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          velocity_ = value;
          onChanged();
        } else {
          velocityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder setVelocity(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder builderForValue) {
        if (velocityBuilder_ == null) {
          velocity_ = builderForValue.build();
          onChanged();
        } else {
          velocityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder mergeVelocity(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D value) {
        if (velocityBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              velocity_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance()) {
            velocity_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.newBuilder(velocity_).mergeFrom(value).buildPartial();
          } else {
            velocity_ = value;
          }
          onChanged();
        } else {
          velocityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public Builder clearVelocity() {
        if (velocityBuilder_ == null) {
          velocity_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          velocityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder getVelocityBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVelocityFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getVelocityOrBuilder() {
        if (velocityBuilder_ != null) {
          return velocityBuilder_.getMessageOrBuilder();
        } else {
          return velocity_;
        }
      }
      /**
       * optional .CMsgVector2D velocity = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder> 
          getVelocityFieldBuilder() {
        if (velocityBuilder_ == null) {
          velocityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder>(
                  getVelocity(),
                  getParentForChildren(),
                  isClean());
          velocity_ = null;
        }
        return velocityBuilder_;
      }

      private int latency_ ;
      /**
       * optional int32 latency = 3;
       */
      public boolean hasLatency() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 latency = 3;
       */
      public int getLatency() {
        return latency_;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder setLatency(int value) {
        bitField0_ |= 0x00000004;
        latency_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 latency = 3;
       */
      public Builder clearLatency() {
        bitField0_ = (bitField0_ & ~0x00000004);
        latency_ = 0;
        onChanged();
        return this;
      }

      private int entindex_ ;
      /**
       * optional int32 entindex = 4;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 entindex = 4;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000008;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 4;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private long particleIndex_ ;
      /**
       * optional uint64 particle_index = 5;
       */
      public boolean hasParticleIndex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public long getParticleIndex() {
        return particleIndex_;
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public Builder setParticleIndex(long value) {
        bitField0_ |= 0x00000010;
        particleIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 particle_index = 5;
       */
      public Builder clearParticleIndex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        particleIndex_ = 0L;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 6;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 handle = 6;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000020;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 6;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000020);
        handle_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D acceleration_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder> accelerationBuilder_;
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public boolean hasAcceleration() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D getAcceleration() {
        if (accelerationBuilder_ == null) {
          return acceleration_;
        } else {
          return accelerationBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceleration_ = value;
          onChanged();
        } else {
          accelerationBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder setAcceleration(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder builderForValue) {
        if (accelerationBuilder_ == null) {
          acceleration_ = builderForValue.build();
          onChanged();
        } else {
          accelerationBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder mergeAcceleration(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D value) {
        if (accelerationBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              acceleration_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance()) {
            acceleration_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.newBuilder(acceleration_).mergeFrom(value).buildPartial();
          } else {
            acceleration_ = value;
          }
          onChanged();
        } else {
          accelerationBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public Builder clearAcceleration() {
        if (accelerationBuilder_ == null) {
          acceleration_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.getDefaultInstance();
          onChanged();
        } else {
          accelerationBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder getAccelerationBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getAccelerationFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder getAccelerationOrBuilder() {
        if (accelerationBuilder_ != null) {
          return accelerationBuilder_.getMessageOrBuilder();
        } else {
          return acceleration_;
        }
      }
      /**
       * optional .CMsgVector2D acceleration = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder> 
          getAccelerationFieldBuilder() {
        if (accelerationBuilder_ == null) {
          accelerationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2D.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector2DOrBuilder>(
                  getAcceleration(),
                  getParentForChildren(),
                  isClean());
          acceleration_ = null;
        }
        return accelerationBuilder_;
      }

      private float maxSpeed_ ;
      /**
       * optional float max_speed = 8;
       */
      public boolean hasMaxSpeed() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional float max_speed = 8;
       */
      public float getMaxSpeed() {
        return maxSpeed_;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder setMaxSpeed(float value) {
        bitField0_ |= 0x00000080;
        maxSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float max_speed = 8;
       */
      public Builder clearMaxSpeed() {
        bitField0_ = (bitField0_ & ~0x00000080);
        maxSpeed_ = 0F;
        onChanged();
        return this;
      }

      private float fowRadius_ ;
      /**
       * optional float fow_radius = 9;
       */
      public boolean hasFowRadius() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float fow_radius = 9;
       */
      public float getFowRadius() {
        return fowRadius_;
      }
      /**
       * optional float fow_radius = 9;
       */
      public Builder setFowRadius(float value) {
        bitField0_ |= 0x00000100;
        fowRadius_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float fow_radius = 9;
       */
      public Builder clearFowRadius() {
        bitField0_ = (bitField0_ & ~0x00000100);
        fowRadius_ = 0F;
        onChanged();
        return this;
      }

      private boolean stickyFowReveal_ ;
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public boolean hasStickyFowReveal() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public boolean getStickyFowReveal() {
        return stickyFowReveal_;
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public Builder setStickyFowReveal(boolean value) {
        bitField0_ |= 0x00000200;
        stickyFowReveal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool sticky_fow_reveal = 10;
       */
      public Builder clearStickyFowReveal() {
        bitField0_ = (bitField0_ & ~0x00000200);
        stickyFowReveal_ = false;
        onChanged();
        return this;
      }

      private float distance_ ;
      /**
       * optional float distance = 11;
       */
      public boolean hasDistance() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional float distance = 11;
       */
      public float getDistance() {
        return distance_;
      }
      /**
       * optional float distance = 11;
       */
      public Builder setDistance(float value) {
        bitField0_ |= 0x00000400;
        distance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float distance = 11;
       */
      public Builder clearDistance() {
        bitField0_ = (bitField0_ & ~0x00000400);
        distance_ = 0F;
        onChanged();
        return this;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000800;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 12;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000800);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      private java.util.List particleCpData_ =
        java.util.Collections.emptyList();
      private void ensureParticleCpDataIsMutable() {
        if (!((bitField0_ & 0x00001000) == 0x00001000)) {
          particleCpData_ = new java.util.ArrayList(particleCpData_);
          bitField0_ |= 0x00001000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> particleCpDataBuilder_;

      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public java.util.List getParticleCpDataList() {
        if (particleCpDataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(particleCpData_);
        } else {
          return particleCpDataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public int getParticleCpDataCount() {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.size();
        } else {
          return particleCpDataBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);
        } else {
          return particleCpDataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder addParticleCpData(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder addParticleCpData(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder addAllParticleCpData(
          java.lang.Iterable values) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, particleCpData_);
          onChanged();
        } else {
          particleCpDataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder clearParticleCpData() {
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00001000);
          onChanged();
        } else {
          particleCpDataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public Builder removeParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.remove(index);
          onChanged();
        } else {
          particleCpDataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder getParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
          int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);  } else {
          return particleCpDataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public java.util.List 
           getParticleCpDataOrBuilderList() {
        if (particleCpDataBuilder_ != null) {
          return particleCpDataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(particleCpData_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder() {
        return getParticleCpDataFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 13;
       */
      public java.util.List 
           getParticleCpDataBuilderList() {
        return getParticleCpDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> 
          getParticleCpDataFieldBuilder() {
        if (particleCpDataBuilder_ == null) {
          particleCpDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder>(
                  particleCpData_,
                  ((bitField0_ & 0x00001000) == 0x00001000),
                  getParentForChildren(),
                  isClean());
          particleCpData_ = null;
        }
        return particleCpDataBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_CreateLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_CreateLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_CreateLinearProjectile)
  }

  public interface CDOTAUserMsg_DestroyLinearProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DestroyLinearProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 handle = 1;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 1;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
   */
  public static final class CDOTAUserMsg_DestroyLinearProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DestroyLinearProjectile)
      CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
    // Use CDOTAUserMsg_DestroyLinearProjectile.newBuilder() to construct.
    private CDOTAUserMsg_DestroyLinearProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DestroyLinearProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DestroyLinearProjectile defaultInstance;
    public static CDOTAUserMsg_DestroyLinearProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DestroyLinearProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DestroyLinearProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DestroyLinearProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HANDLE_FIELD_NUMBER = 1;
    private int handle_;
    /**
     * optional int32 handle = 1;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 handle = 1;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DestroyLinearProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DestroyLinearProjectile)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile.getDefaultInstance()) return this;
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DestroyLinearProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int handle_ ;
      /**
       * optional int32 handle = 1;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 handle = 1;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000001;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DestroyLinearProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DestroyLinearProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DestroyLinearProjectile)
  }

  public interface CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DodgeTrackingProjectiles)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional bool attacks_only = 2;
     */
    boolean hasAttacksOnly();
    /**
     * optional bool attacks_only = 2;
     */
    boolean getAttacksOnly();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
   */
  public static final class CDOTAUserMsg_DodgeTrackingProjectiles extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DodgeTrackingProjectiles)
      CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
    // Use CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder() to construct.
    private CDOTAUserMsg_DodgeTrackingProjectiles(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DodgeTrackingProjectiles defaultInstance;
    public static CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DodgeTrackingProjectiles(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              attacksOnly_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DodgeTrackingProjectiles parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DodgeTrackingProjectiles(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ATTACKS_ONLY_FIELD_NUMBER = 2;
    private boolean attacksOnly_;
    /**
     * optional bool attacks_only = 2;
     */
    public boolean hasAttacksOnly() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool attacks_only = 2;
     */
    public boolean getAttacksOnly() {
      return attacksOnly_;
    }

    private void initFields() {
      entindex_ = 0;
      attacksOnly_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, attacksOnly_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, attacksOnly_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DodgeTrackingProjectiles}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DodgeTrackingProjectiles)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectilesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        attacksOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.attacksOnly_ = attacksOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasAttacksOnly()) {
          setAttacksOnly(other.getAttacksOnly());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DodgeTrackingProjectiles) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private boolean attacksOnly_ ;
      /**
       * optional bool attacks_only = 2;
       */
      public boolean hasAttacksOnly() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool attacks_only = 2;
       */
      public boolean getAttacksOnly() {
        return attacksOnly_;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder setAttacksOnly(boolean value) {
        bitField0_ |= 0x00000002;
        attacksOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacks_only = 2;
       */
      public Builder clearAttacksOnly() {
        bitField0_ = (bitField0_ & ~0x00000002);
        attacksOnly_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DodgeTrackingProjectiles(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DodgeTrackingProjectiles)
  }

  public interface CDOTAUserMsg_SpectatorPlayerClickOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SpectatorPlayerClick)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * required int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional int32 order_type = 2;
     */
    boolean hasOrderType();
    /**
     * optional int32 order_type = 2;
     */
    int getOrderType();

    /**
     * optional int32 target_index = 3;
     */
    boolean hasTargetIndex();
    /**
     * optional int32 target_index = 3;
     */
    int getTargetIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
   */
  public static final class CDOTAUserMsg_SpectatorPlayerClick extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SpectatorPlayerClick)
      CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
    // Use CDOTAUserMsg_SpectatorPlayerClick.newBuilder() to construct.
    private CDOTAUserMsg_SpectatorPlayerClick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SpectatorPlayerClick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SpectatorPlayerClick defaultInstance;
    public static CDOTAUserMsg_SpectatorPlayerClick getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SpectatorPlayerClick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderType_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SpectatorPlayerClick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SpectatorPlayerClick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * required int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ORDER_TYPE_FIELD_NUMBER = 2;
    private int orderType_;
    /**
     * optional int32 order_type = 2;
     */
    public boolean hasOrderType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 order_type = 2;
     */
    public int getOrderType() {
      return orderType_;
    }

    public static final int TARGET_INDEX_FIELD_NUMBER = 3;
    private int targetIndex_;
    /**
     * optional int32 target_index = 3;
     */
    public boolean hasTargetIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_index = 3;
     */
    public int getTargetIndex() {
      return targetIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      orderType_ = 0;
      targetIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasEntindex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerClick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SpectatorPlayerClick)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        orderType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.orderType_ = orderType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetIndex_ = targetIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasOrderType()) {
          setOrderType(other.getOrderType());
        }
        if (other.hasTargetIndex()) {
          setTargetIndex(other.getTargetIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEntindex()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerClick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * required int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private int orderType_ ;
      /**
       * optional int32 order_type = 2;
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 order_type = 2;
       */
      public int getOrderType() {
        return orderType_;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder setOrderType(int value) {
        bitField0_ |= 0x00000002;
        orderType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder clearOrderType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderType_ = 0;
        onChanged();
        return this;
      }

      private int targetIndex_ ;
      /**
       * optional int32 target_index = 3;
       */
      public boolean hasTargetIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_index = 3;
       */
      public int getTargetIndex() {
        return targetIndex_;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder setTargetIndex(int value) {
        bitField0_ |= 0x00000004;
        targetIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_index = 3;
       */
      public Builder clearTargetIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SpectatorPlayerClick)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SpectatorPlayerClick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SpectatorPlayerClick)
  }

  public interface CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SpectatorPlayerUnitOrders)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional int32 order_type = 2;
     */
    boolean hasOrderType();
    /**
     * optional int32 order_type = 2;
     */
    int getOrderType();

    /**
     * repeated int32 units = 3;
     */
    java.util.List getUnitsList();
    /**
     * repeated int32 units = 3;
     */
    int getUnitsCount();
    /**
     * repeated int32 units = 3;
     */
    int getUnits(int index);

    /**
     * optional int32 target_index = 4;
     */
    boolean hasTargetIndex();
    /**
     * optional int32 target_index = 4;
     */
    int getTargetIndex();

    /**
     * optional int32 ability_id = 5;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 5;
     */
    int getAbilityId();

    /**
     * optional .CMsgVector position = 6;
     */
    boolean hasPosition();
    /**
     * optional .CMsgVector position = 6;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getPosition();
    /**
     * optional .CMsgVector position = 6;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder();

    /**
     * optional bool queue = 7;
     */
    boolean hasQueue();
    /**
     * optional bool queue = 7;
     */
    boolean getQueue();

    /**
     * optional int32 sequence_number = 8;
     */
    boolean hasSequenceNumber();
    /**
     * optional int32 sequence_number = 8;
     */
    int getSequenceNumber();

    /**
     * optional uint32 flags = 9;
     */
    boolean hasFlags();
    /**
     * optional uint32 flags = 9;
     */
    int getFlags();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerUnitOrders}
   */
  public static final class CDOTAUserMsg_SpectatorPlayerUnitOrders extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SpectatorPlayerUnitOrders)
      CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder {
    // Use CDOTAUserMsg_SpectatorPlayerUnitOrders.newBuilder() to construct.
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SpectatorPlayerUnitOrders defaultInstance;
    public static CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SpectatorPlayerUnitOrders(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              orderType_ = input.readInt32();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                units_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              units_.add(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
                units_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              while (input.getBytesUntilLimit() > 0) {
                units_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              targetIndex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000008;
              abilityId_ = input.readInt32();
              break;
            }
            case 50: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = position_.toBuilder();
              }
              position_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(position_);
                position_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000020;
              queue_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              sequenceNumber_ = input.readInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000080;
              flags_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = java.util.Collections.unmodifiableList(units_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SpectatorPlayerUnitOrders parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SpectatorPlayerUnitOrders(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * optional int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int ORDER_TYPE_FIELD_NUMBER = 2;
    private int orderType_;
    /**
     * optional int32 order_type = 2;
     */
    public boolean hasOrderType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 order_type = 2;
     */
    public int getOrderType() {
      return orderType_;
    }

    public static final int UNITS_FIELD_NUMBER = 3;
    private java.util.List units_;
    /**
     * repeated int32 units = 3;
     */
    public java.util.List
        getUnitsList() {
      return units_;
    }
    /**
     * repeated int32 units = 3;
     */
    public int getUnitsCount() {
      return units_.size();
    }
    /**
     * repeated int32 units = 3;
     */
    public int getUnits(int index) {
      return units_.get(index);
    }

    public static final int TARGET_INDEX_FIELD_NUMBER = 4;
    private int targetIndex_;
    /**
     * optional int32 target_index = 4;
     */
    public boolean hasTargetIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_index = 4;
     */
    public int getTargetIndex() {
      return targetIndex_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 5;
    private int abilityId_;
    /**
     * optional int32 ability_id = 5;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 ability_id = 5;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int POSITION_FIELD_NUMBER = 6;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector position_;
    /**
     * optional .CMsgVector position = 6;
     */
    public boolean hasPosition() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CMsgVector position = 6;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getPosition() {
      return position_;
    }
    /**
     * optional .CMsgVector position = 6;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
      return position_;
    }

    public static final int QUEUE_FIELD_NUMBER = 7;
    private boolean queue_;
    /**
     * optional bool queue = 7;
     */
    public boolean hasQueue() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool queue = 7;
     */
    public boolean getQueue() {
      return queue_;
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 8;
    private int sequenceNumber_;
    /**
     * optional int32 sequence_number = 8;
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 sequence_number = 8;
     */
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    public static final int FLAGS_FIELD_NUMBER = 9;
    private int flags_;
    /**
     * optional uint32 flags = 9;
     */
    public boolean hasFlags() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 flags = 9;
     */
    public int getFlags() {
      return flags_;
    }

    private void initFields() {
      entindex_ = 0;
      orderType_ = 0;
      units_ = java.util.Collections.emptyList();
      targetIndex_ = 0;
      abilityId_ = 0;
      position_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      queue_ = false;
      sequenceNumber_ = 0;
      flags_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, orderType_);
      }
      for (int i = 0; i < units_.size(); i++) {
        output.writeInt32(3, units_.get(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, targetIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(5, abilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, position_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(7, queue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(8, sequenceNumber_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(9, flags_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, orderType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < units_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(units_.get(i));
        }
        size += dataSize;
        size += 1 * getUnitsList().size();
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, targetIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, abilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, position_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, queue_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, sequenceNumber_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, flags_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SpectatorPlayerUnitOrders}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SpectatorPlayerUnitOrders)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrdersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPositionFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        orderType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        units_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        targetIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (positionBuilder_ == null) {
          position_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          positionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        queue_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        sequenceNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        flags_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.orderType_ = orderType_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = java.util.Collections.unmodifiableList(units_);
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.units_ = units_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetIndex_ = targetIndex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        if (positionBuilder_ == null) {
          result.position_ = position_;
        } else {
          result.position_ = positionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.queue_ = queue_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.sequenceNumber_ = sequenceNumber_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.flags_ = flags_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasOrderType()) {
          setOrderType(other.getOrderType());
        }
        if (!other.units_.isEmpty()) {
          if (units_.isEmpty()) {
            units_ = other.units_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureUnitsIsMutable();
            units_.addAll(other.units_);
          }
          onChanged();
        }
        if (other.hasTargetIndex()) {
          setTargetIndex(other.getTargetIndex());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasPosition()) {
          mergePosition(other.getPosition());
        }
        if (other.hasQueue()) {
          setQueue(other.getQueue());
        }
        if (other.hasSequenceNumber()) {
          setSequenceNumber(other.getSequenceNumber());
        }
        if (other.hasFlags()) {
          setFlags(other.getFlags());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SpectatorPlayerUnitOrders) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * optional int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private int orderType_ ;
      /**
       * optional int32 order_type = 2;
       */
      public boolean hasOrderType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 order_type = 2;
       */
      public int getOrderType() {
        return orderType_;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder setOrderType(int value) {
        bitField0_ |= 0x00000002;
        orderType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_type = 2;
       */
      public Builder clearOrderType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        orderType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List units_ = java.util.Collections.emptyList();
      private void ensureUnitsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          units_ = new java.util.ArrayList(units_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated int32 units = 3;
       */
      public java.util.List
          getUnitsList() {
        return java.util.Collections.unmodifiableList(units_);
      }
      /**
       * repeated int32 units = 3;
       */
      public int getUnitsCount() {
        return units_.size();
      }
      /**
       * repeated int32 units = 3;
       */
      public int getUnits(int index) {
        return units_.get(index);
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder setUnits(
          int index, int value) {
        ensureUnitsIsMutable();
        units_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder addUnits(int value) {
        ensureUnitsIsMutable();
        units_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder addAllUnits(
          java.lang.Iterable values) {
        ensureUnitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, units_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 units = 3;
       */
      public Builder clearUnits() {
        units_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }

      private int targetIndex_ ;
      /**
       * optional int32 target_index = 4;
       */
      public boolean hasTargetIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 target_index = 4;
       */
      public int getTargetIndex() {
        return targetIndex_;
      }
      /**
       * optional int32 target_index = 4;
       */
      public Builder setTargetIndex(int value) {
        bitField0_ |= 0x00000008;
        targetIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_index = 4;
       */
      public Builder clearTargetIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        targetIndex_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 5;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 ability_id = 5;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 5;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000010;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 5;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector position_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> positionBuilder_;
      /**
       * optional .CMsgVector position = 6;
       */
      public boolean hasPosition() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getPosition() {
        if (positionBuilder_ == null) {
          return position_;
        } else {
          return positionBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder setPosition(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (positionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          position_ = value;
          onChanged();
        } else {
          positionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder setPosition(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (positionBuilder_ == null) {
          position_ = builderForValue.build();
          onChanged();
        } else {
          positionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder mergePosition(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (positionBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              position_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            position_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(position_).mergeFrom(value).buildPartial();
          } else {
            position_ = value;
          }
          onChanged();
        } else {
          positionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public Builder clearPosition() {
        if (positionBuilder_ == null) {
          position_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          positionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getPositionBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getPositionFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector position = 6;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getPositionOrBuilder() {
        if (positionBuilder_ != null) {
          return positionBuilder_.getMessageOrBuilder();
        } else {
          return position_;
        }
      }
      /**
       * optional .CMsgVector position = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getPositionFieldBuilder() {
        if (positionBuilder_ == null) {
          positionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getPosition(),
                  getParentForChildren(),
                  isClean());
          position_ = null;
        }
        return positionBuilder_;
      }

      private boolean queue_ ;
      /**
       * optional bool queue = 7;
       */
      public boolean hasQueue() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool queue = 7;
       */
      public boolean getQueue() {
        return queue_;
      }
      /**
       * optional bool queue = 7;
       */
      public Builder setQueue(boolean value) {
        bitField0_ |= 0x00000040;
        queue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool queue = 7;
       */
      public Builder clearQueue() {
        bitField0_ = (bitField0_ & ~0x00000040);
        queue_ = false;
        onChanged();
        return this;
      }

      private int sequenceNumber_ ;
      /**
       * optional int32 sequence_number = 8;
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public Builder setSequenceNumber(int value) {
        bitField0_ |= 0x00000080;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_number = 8;
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000080);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      private int flags_ ;
      /**
       * optional uint32 flags = 9;
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 flags = 9;
       */
      public int getFlags() {
        return flags_;
      }
      /**
       * optional uint32 flags = 9;
       */
      public Builder setFlags(int value) {
        bitField0_ |= 0x00000100;
        flags_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 flags = 9;
       */
      public Builder clearFlags() {
        bitField0_ = (bitField0_ & ~0x00000100);
        flags_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SpectatorPlayerUnitOrders)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SpectatorPlayerUnitOrders(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SpectatorPlayerUnitOrders)
  }

  public interface CDOTAUserMsg_NevermoreRequiemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_NevermoreRequiem)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity_handle = 1;
     */
    boolean hasEntityHandle();
    /**
     * optional int32 entity_handle = 1;
     */
    int getEntityHandle();

    /**
     * optional int32 lines = 2;
     */
    boolean hasLines();
    /**
     * optional int32 lines = 2;
     */
    int getLines();

    /**
     * optional .CMsgVector origin = 3;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 3;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional bool reverse = 4;
     */
    boolean hasReverse();
    /**
     * optional bool reverse = 4;
     */
    boolean getReverse();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
   */
  public static final class CDOTAUserMsg_NevermoreRequiem extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_NevermoreRequiem)
      CDOTAUserMsg_NevermoreRequiemOrBuilder {
    // Use CDOTAUserMsg_NevermoreRequiem.newBuilder() to construct.
    private CDOTAUserMsg_NevermoreRequiem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_NevermoreRequiem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_NevermoreRequiem defaultInstance;
    public static CDOTAUserMsg_NevermoreRequiem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_NevermoreRequiem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entityHandle_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              lines_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              reverse_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_NevermoreRequiem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_NevermoreRequiem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_HANDLE_FIELD_NUMBER = 1;
    private int entityHandle_;
    /**
     * optional int32 entity_handle = 1;
     */
    public boolean hasEntityHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity_handle = 1;
     */
    public int getEntityHandle() {
      return entityHandle_;
    }

    public static final int LINES_FIELD_NUMBER = 2;
    private int lines_;
    /**
     * optional int32 lines = 2;
     */
    public boolean hasLines() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 lines = 2;
     */
    public int getLines() {
      return lines_;
    }

    public static final int ORIGIN_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 3;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 3;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int REVERSE_FIELD_NUMBER = 4;
    private boolean reverse_;
    /**
     * optional bool reverse = 4;
     */
    public boolean hasReverse() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool reverse = 4;
     */
    public boolean getReverse() {
      return reverse_;
    }

    private void initFields() {
      entityHandle_ = 0;
      lines_ = 0;
      origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      reverse_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, origin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, reverse_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entityHandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, lines_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, origin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, reverse_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_NevermoreRequiem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_NevermoreRequiem)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entityHandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        lines_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        reverse_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entityHandle_ = entityHandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.lines_ = lines_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.reverse_ = reverse_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem.getDefaultInstance()) return this;
        if (other.hasEntityHandle()) {
          setEntityHandle(other.getEntityHandle());
        }
        if (other.hasLines()) {
          setLines(other.getLines());
        }
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasReverse()) {
          setReverse(other.getReverse());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_NevermoreRequiem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entityHandle_ ;
      /**
       * optional int32 entity_handle = 1;
       */
      public boolean hasEntityHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public int getEntityHandle() {
        return entityHandle_;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder setEntityHandle(int value) {
        bitField0_ |= 0x00000001;
        entityHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity_handle = 1;
       */
      public Builder clearEntityHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entityHandle_ = 0;
        onChanged();
        return this;
      }

      private int lines_ ;
      /**
       * optional int32 lines = 2;
       */
      public boolean hasLines() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 lines = 2;
       */
      public int getLines() {
        return lines_;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder setLines(int value) {
        bitField0_ |= 0x00000002;
        lines_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 lines = 2;
       */
      public Builder clearLines() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lines_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 3;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              origin_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private boolean reverse_ ;
      /**
       * optional bool reverse = 4;
       */
      public boolean hasReverse() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool reverse = 4;
       */
      public boolean getReverse() {
        return reverse_;
      }
      /**
       * optional bool reverse = 4;
       */
      public Builder setReverse(boolean value) {
        bitField0_ |= 0x00000008;
        reverse_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool reverse = 4;
       */
      public Builder clearReverse() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reverse_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_NevermoreRequiem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_NevermoreRequiem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_NevermoreRequiem)
  }

  public interface CDOTAUserMsg_InvalidCommandOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_InvalidCommand)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string message = 1;
     */
    boolean hasMessage();
    /**
     * optional string message = 1;
     */
    java.lang.String getMessage();
    /**
     * optional string message = 1;
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    /**
     * optional int32 sequence_number = 2;
     */
    boolean hasSequenceNumber();
    /**
     * optional int32 sequence_number = 2;
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_InvalidCommand}
   */
  public static final class CDOTAUserMsg_InvalidCommand extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_InvalidCommand)
      CDOTAUserMsg_InvalidCommandOrBuilder {
    // Use CDOTAUserMsg_InvalidCommand.newBuilder() to construct.
    private CDOTAUserMsg_InvalidCommand(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_InvalidCommand(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_InvalidCommand defaultInstance;
    public static CDOTAUserMsg_InvalidCommand getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_InvalidCommand getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_InvalidCommand(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              message_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sequenceNumber_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_InvalidCommand parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_InvalidCommand(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int MESSAGE_FIELD_NUMBER = 1;
    private java.lang.Object message_;
    /**
     * optional string message = 1;
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string message = 1;
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message = 1;
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 2;
    private int sequenceNumber_;
    /**
     * optional int32 sequence_number = 2;
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 sequence_number = 2;
     */
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private void initFields() {
      message_ = "";
      sequenceNumber_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getMessageBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getMessageBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_InvalidCommand}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_InvalidCommand)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommandOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sequenceNumber_ = sequenceNumber_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand.getDefaultInstance()) return this;
        if (other.hasMessage()) {
          bitField0_ |= 0x00000001;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasSequenceNumber()) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InvalidCommand) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object message_ = "";
      /**
       * optional string message = 1;
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string message = 1;
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * optional string message = 1;
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        message_ = value;
        onChanged();
        return this;
      }

      private int sequenceNumber_ ;
      /**
       * optional int32 sequence_number = 2;
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public Builder setSequenceNumber(int value) {
        bitField0_ |= 0x00000002;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_InvalidCommand)
    }

    static {
      defaultInstance = new CDOTAUserMsg_InvalidCommand(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_InvalidCommand)
  }

  public interface CDOTAUserMsg_HudErrorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HudError)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 order_id = 1;
     */
    boolean hasOrderId();
    /**
     * optional int32 order_id = 1;
     */
    int getOrderId();

    /**
     * optional int32 sequence_number = 2;
     */
    boolean hasSequenceNumber();
    /**
     * optional int32 sequence_number = 2;
     */
    int getSequenceNumber();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HudError}
   */
  public static final class CDOTAUserMsg_HudError extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HudError)
      CDOTAUserMsg_HudErrorOrBuilder {
    // Use CDOTAUserMsg_HudError.newBuilder() to construct.
    private CDOTAUserMsg_HudError(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HudError(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HudError defaultInstance;
    public static CDOTAUserMsg_HudError getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HudError getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HudError(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              orderId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sequenceNumber_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HudError parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HudError(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ORDER_ID_FIELD_NUMBER = 1;
    private int orderId_;
    /**
     * optional int32 order_id = 1;
     */
    public boolean hasOrderId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 order_id = 1;
     */
    public int getOrderId() {
      return orderId_;
    }

    public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 2;
    private int sequenceNumber_;
    /**
     * optional int32 sequence_number = 2;
     */
    public boolean hasSequenceNumber() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 sequence_number = 2;
     */
    public int getSequenceNumber() {
      return sequenceNumber_;
    }

    private void initFields() {
      orderId_ = 0;
      sequenceNumber_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, orderId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, sequenceNumber_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, orderId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceNumber_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HudError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HudError)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HudError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        orderId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HudError_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.orderId_ = orderId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sequenceNumber_ = sequenceNumber_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError.getDefaultInstance()) return this;
        if (other.hasOrderId()) {
          setOrderId(other.getOrderId());
        }
        if (other.hasSequenceNumber()) {
          setSequenceNumber(other.getSequenceNumber());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HudError) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int orderId_ ;
      /**
       * optional int32 order_id = 1;
       */
      public boolean hasOrderId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 order_id = 1;
       */
      public int getOrderId() {
        return orderId_;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder setOrderId(int value) {
        bitField0_ |= 0x00000001;
        orderId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 order_id = 1;
       */
      public Builder clearOrderId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        orderId_ = 0;
        onChanged();
        return this;
      }

      private int sequenceNumber_ ;
      /**
       * optional int32 sequence_number = 2;
       */
      public boolean hasSequenceNumber() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public int getSequenceNumber() {
        return sequenceNumber_;
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public Builder setSequenceNumber(int value) {
        bitField0_ |= 0x00000002;
        sequenceNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_number = 2;
       */
      public Builder clearSequenceNumber() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sequenceNumber_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HudError)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HudError(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HudError)
  }

  public interface CDOTAUserMsg_SharedCooldownOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SharedCooldown)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entindex = 1;
     */
    boolean hasEntindex();
    /**
     * optional int32 entindex = 1;
     */
    int getEntindex();

    /**
     * optional string name = 2;
     */
    boolean hasName();
    /**
     * optional string name = 2;
     */
    java.lang.String getName();
    /**
     * optional string name = 2;
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * optional float cooldown = 3;
     */
    boolean hasCooldown();
    /**
     * optional float cooldown = 3;
     */
    float getCooldown();

    /**
     * optional int32 name_index = 4;
     */
    boolean hasNameIndex();
    /**
     * optional int32 name_index = 4;
     */
    int getNameIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
   */
  public static final class CDOTAUserMsg_SharedCooldown extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SharedCooldown)
      CDOTAUserMsg_SharedCooldownOrBuilder {
    // Use CDOTAUserMsg_SharedCooldown.newBuilder() to construct.
    private CDOTAUserMsg_SharedCooldown(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SharedCooldown(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SharedCooldown defaultInstance;
    public static CDOTAUserMsg_SharedCooldown getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SharedCooldown(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entindex_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              name_ = bs;
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              cooldown_ = input.readFloat();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              nameIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SharedCooldown parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SharedCooldown(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTINDEX_FIELD_NUMBER = 1;
    private int entindex_;
    /**
     * optional int32 entindex = 1;
     */
    public boolean hasEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entindex = 1;
     */
    public int getEntindex() {
      return entindex_;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private java.lang.Object name_;
    /**
     * optional string name = 2;
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string name = 2;
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     * optional string name = 2;
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COOLDOWN_FIELD_NUMBER = 3;
    private float cooldown_;
    /**
     * optional float cooldown = 3;
     */
    public boolean hasCooldown() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float cooldown = 3;
     */
    public float getCooldown() {
      return cooldown_;
    }

    public static final int NAME_INDEX_FIELD_NUMBER = 4;
    private int nameIndex_;
    /**
     * optional int32 name_index = 4;
     */
    public boolean hasNameIndex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 name_index = 4;
     */
    public int getNameIndex() {
      return nameIndex_;
    }

    private void initFields() {
      entindex_ = 0;
      name_ = "";
      cooldown_ = 0F;
      nameIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, nameIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getNameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, cooldown_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, nameIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SharedCooldown}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SharedCooldown)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldownOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        cooldown_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        nameIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entindex_ = entindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cooldown_ = cooldown_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.nameIndex_ = nameIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown.getDefaultInstance()) return this;
        if (other.hasEntindex()) {
          setEntindex(other.getEntindex());
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasCooldown()) {
          setCooldown(other.getCooldown());
        }
        if (other.hasNameIndex()) {
          setNameIndex(other.getNameIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SharedCooldown) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entindex_ ;
      /**
       * optional int32 entindex = 1;
       */
      public boolean hasEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entindex = 1;
       */
      public int getEntindex() {
        return entindex_;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder setEntindex(int value) {
        bitField0_ |= 0x00000001;
        entindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entindex = 1;
       */
      public Builder clearEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entindex_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * optional string name = 2;
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string name = 2;
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string name = 2;
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * optional string name = 2;
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }

      private float cooldown_ ;
      /**
       * optional float cooldown = 3;
       */
      public boolean hasCooldown() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float cooldown = 3;
       */
      public float getCooldown() {
        return cooldown_;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder setCooldown(float value) {
        bitField0_ |= 0x00000004;
        cooldown_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float cooldown = 3;
       */
      public Builder clearCooldown() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldown_ = 0F;
        onChanged();
        return this;
      }

      private int nameIndex_ ;
      /**
       * optional int32 name_index = 4;
       */
      public boolean hasNameIndex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 name_index = 4;
       */
      public int getNameIndex() {
        return nameIndex_;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder setNameIndex(int value) {
        bitField0_ |= 0x00000008;
        nameIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 name_index = 4;
       */
      public Builder clearNameIndex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        nameIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SharedCooldown)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SharedCooldown(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SharedCooldown)
  }

  public interface CDOTAUserMsg_HalloweenDropsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HalloweenDrops)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated uint32 item_defs = 1;
     */
    java.util.List getItemDefsList();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefsCount();
    /**
     * repeated uint32 item_defs = 1;
     */
    int getItemDefs(int index);

    /**
     * repeated int32 player_ids = 2;
     */
    java.util.List getPlayerIdsList();
    /**
     * repeated int32 player_ids = 2;
     */
    int getPlayerIdsCount();
    /**
     * repeated int32 player_ids = 2;
     */
    int getPlayerIds(int index);

    /**
     * optional uint32 prize_list = 3;
     */
    boolean hasPrizeList();
    /**
     * optional uint32 prize_list = 3;
     */
    int getPrizeList();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
   */
  public static final class CDOTAUserMsg_HalloweenDrops extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HalloweenDrops)
      CDOTAUserMsg_HalloweenDropsOrBuilder {
    // Use CDOTAUserMsg_HalloweenDrops.newBuilder() to construct.
    private CDOTAUserMsg_HalloweenDrops(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HalloweenDrops(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HalloweenDrops defaultInstance;
    public static CDOTAUserMsg_HalloweenDrops getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HalloweenDrops(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              itemDefs_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                itemDefs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                itemDefs_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerIds_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                playerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                playerIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 24: {
              bitField0_ |= 0x00000001;
              prizeList_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HalloweenDrops parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HalloweenDrops(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_DEFS_FIELD_NUMBER = 1;
    private java.util.List itemDefs_;
    /**
     * repeated uint32 item_defs = 1;
     */
    public java.util.List
        getItemDefsList() {
      return itemDefs_;
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefsCount() {
      return itemDefs_.size();
    }
    /**
     * repeated uint32 item_defs = 1;
     */
    public int getItemDefs(int index) {
      return itemDefs_.get(index);
    }

    public static final int PLAYER_IDS_FIELD_NUMBER = 2;
    private java.util.List playerIds_;
    /**
     * repeated int32 player_ids = 2;
     */
    public java.util.List
        getPlayerIdsList() {
      return playerIds_;
    }
    /**
     * repeated int32 player_ids = 2;
     */
    public int getPlayerIdsCount() {
      return playerIds_.size();
    }
    /**
     * repeated int32 player_ids = 2;
     */
    public int getPlayerIds(int index) {
      return playerIds_.get(index);
    }

    public static final int PRIZE_LIST_FIELD_NUMBER = 3;
    private int prizeList_;
    /**
     * optional uint32 prize_list = 3;
     */
    public boolean hasPrizeList() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 prize_list = 3;
     */
    public int getPrizeList() {
      return prizeList_;
    }

    private void initFields() {
      itemDefs_ = java.util.Collections.emptyList();
      playerIds_ = java.util.Collections.emptyList();
      prizeList_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < itemDefs_.size(); i++) {
        output.writeUInt32(1, itemDefs_.get(i));
      }
      for (int i = 0; i < playerIds_.size(); i++) {
        output.writeInt32(2, playerIds_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(3, prizeList_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < itemDefs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(itemDefs_.get(i));
        }
        size += dataSize;
        size += 1 * getItemDefsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < playerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(playerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getPlayerIdsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, prizeList_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HalloweenDrops}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HalloweenDrops)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDropsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        prizeList_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = java.util.Collections.unmodifiableList(itemDefs_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.itemDefs_ = itemDefs_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = java.util.Collections.unmodifiableList(playerIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.playerIds_ = playerIds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.prizeList_ = prizeList_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops.getDefaultInstance()) return this;
        if (!other.itemDefs_.isEmpty()) {
          if (itemDefs_.isEmpty()) {
            itemDefs_ = other.itemDefs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureItemDefsIsMutable();
            itemDefs_.addAll(other.itemDefs_);
          }
          onChanged();
        }
        if (!other.playerIds_.isEmpty()) {
          if (playerIds_.isEmpty()) {
            playerIds_ = other.playerIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensurePlayerIdsIsMutable();
            playerIds_.addAll(other.playerIds_);
          }
          onChanged();
        }
        if (other.hasPrizeList()) {
          setPrizeList(other.getPrizeList());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HalloweenDrops) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List itemDefs_ = java.util.Collections.emptyList();
      private void ensureItemDefsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          itemDefs_ = new java.util.ArrayList(itemDefs_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public java.util.List
          getItemDefsList() {
        return java.util.Collections.unmodifiableList(itemDefs_);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefsCount() {
        return itemDefs_.size();
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public int getItemDefs(int index) {
        return itemDefs_.get(index);
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder setItemDefs(
          int index, int value) {
        ensureItemDefsIsMutable();
        itemDefs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addItemDefs(int value) {
        ensureItemDefsIsMutable();
        itemDefs_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder addAllItemDefs(
          java.lang.Iterable values) {
        ensureItemDefsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, itemDefs_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 item_defs = 1;
       */
      public Builder clearItemDefs() {
        itemDefs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private java.util.List playerIds_ = java.util.Collections.emptyList();
      private void ensurePlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerIds_ = new java.util.ArrayList(playerIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public java.util.List
          getPlayerIdsList() {
        return java.util.Collections.unmodifiableList(playerIds_);
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public int getPlayerIdsCount() {
        return playerIds_.size();
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public int getPlayerIds(int index) {
        return playerIds_.get(index);
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public Builder setPlayerIds(
          int index, int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public Builder addPlayerIds(int value) {
        ensurePlayerIdsIsMutable();
        playerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public Builder addAllPlayerIds(
          java.lang.Iterable values) {
        ensurePlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, playerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 player_ids = 2;
       */
      public Builder clearPlayerIds() {
        playerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      private int prizeList_ ;
      /**
       * optional uint32 prize_list = 3;
       */
      public boolean hasPrizeList() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public int getPrizeList() {
        return prizeList_;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder setPrizeList(int value) {
        bitField0_ |= 0x00000004;
        prizeList_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 prize_list = 3;
       */
      public Builder clearPrizeList() {
        bitField0_ = (bitField0_ & ~0x00000004);
        prizeList_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HalloweenDrops)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HalloweenDrops(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HalloweenDrops)
  }

  public interface CDOTAUserMsg_PredictionResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PredictionResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 account_id = 1;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 1;
     */
    int getAccountId();

    /**
     * optional uint64 match_id = 2;
     */
    boolean hasMatchId();
    /**
     * optional uint64 match_id = 2;
     */
    long getMatchId();

    /**
     * optional bool correct = 3;
     */
    boolean hasCorrect();
    /**
     * optional bool correct = 3;
     */
    boolean getCorrect();

    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    java.util.List 
        getPredictionsList();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index);
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    int getPredictionsCount();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    java.util.List 
        getPredictionsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PredictionResult}
   */
  public static final class CDOTAUserMsg_PredictionResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PredictionResult)
      CDOTAUserMsg_PredictionResultOrBuilder {
    // Use CDOTAUserMsg_PredictionResult.newBuilder() to construct.
    private CDOTAUserMsg_PredictionResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PredictionResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PredictionResult defaultInstance;
    public static CDOTAUserMsg_PredictionResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PredictionResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PredictionResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              accountId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              matchId_ = input.readUInt64();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              correct_ = input.readBool();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                predictions_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              predictions_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          predictions_ = java.util.Collections.unmodifiableList(predictions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PredictionResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PredictionResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PredictionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PredictionResult.Prediction)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 item_def = 1;
       */
      boolean hasItemDef();
      /**
       * optional uint32 item_def = 1;
       */
      int getItemDef();

      /**
       * optional uint32 num_correct = 2;
       */
      boolean hasNumCorrect();
      /**
       * optional uint32 num_correct = 2;
       */
      int getNumCorrect();

      /**
       * optional uint32 num_fails = 3;
       */
      boolean hasNumFails();
      /**
       * optional uint32 num_fails = 3;
       */
      int getNumFails();

      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      boolean hasResult();
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult();

      /**
       * repeated uint32 granted_item_defs = 6;
       */
      java.util.List getGrantedItemDefsList();
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      int getGrantedItemDefsCount();
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      int getGrantedItemDefs(int index);
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PredictionResult.Prediction}
     */
    public static final class Prediction extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PredictionResult.Prediction)
        PredictionOrBuilder {
      // Use Prediction.newBuilder() to construct.
      private Prediction(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Prediction(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Prediction defaultInstance;
      public static Prediction getDefaultInstance() {
        return defaultInstance;
      }

      public Prediction getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Prediction(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                itemDef_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                numCorrect_ = input.readUInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                numFails_ = input.readUInt32();
                break;
              }
              case 32: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(4, rawValue);
                } else {
                  bitField0_ |= 0x00000008;
                  result_ = value;
                }
                break;
              }
              case 48: {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  grantedItemDefs_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                grantedItemDefs_.add(input.readUInt32());
                break;
              }
              case 50: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010) && input.getBytesUntilLimit() > 0) {
                  grantedItemDefs_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                while (input.getBytesUntilLimit() > 0) {
                  grantedItemDefs_.add(input.readUInt32());
                }
                input.popLimit(limit);
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = java.util.Collections.unmodifiableList(grantedItemDefs_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Prediction parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Prediction(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code CDOTAUserMsg_PredictionResult.Prediction.EResult}
       */
      public enum EResult
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * k_eResult_ItemGranted = 1;
         */
        k_eResult_ItemGranted(0, 1),
        /**
         * k_eResult_Destroyed = 2;
         */
        k_eResult_Destroyed(1, 2),
        ;

        /**
         * k_eResult_ItemGranted = 1;
         */
        public static final int k_eResult_ItemGranted_VALUE = 1;
        /**
         * k_eResult_Destroyed = 2;
         */
        public static final int k_eResult_Destroyed_VALUE = 2;


        public final int getNumber() { return value; }

        public static EResult valueOf(int value) {
          switch (value) {
            case 1: return k_eResult_ItemGranted;
            case 2: return k_eResult_Destroyed;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap() {
                public EResult findValueByNumber(int number) {
                  return EResult.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDescriptor().getEnumTypes().get(0);
        }

        private static final EResult[] VALUES = values();

        public static EResult valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private EResult(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:CDOTAUserMsg_PredictionResult.Prediction.EResult)
      }

      private int bitField0_;
      public static final int ITEM_DEF_FIELD_NUMBER = 1;
      private int itemDef_;
      /**
       * optional uint32 item_def = 1;
       */
      public boolean hasItemDef() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 item_def = 1;
       */
      public int getItemDef() {
        return itemDef_;
      }

      public static final int NUM_CORRECT_FIELD_NUMBER = 2;
      private int numCorrect_;
      /**
       * optional uint32 num_correct = 2;
       */
      public boolean hasNumCorrect() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 num_correct = 2;
       */
      public int getNumCorrect() {
        return numCorrect_;
      }

      public static final int NUM_FAILS_FIELD_NUMBER = 3;
      private int numFails_;
      /**
       * optional uint32 num_fails = 3;
       */
      public boolean hasNumFails() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 num_fails = 3;
       */
      public int getNumFails() {
        return numFails_;
      }

      public static final int RESULT_FIELD_NUMBER = 4;
      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult result_;
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult() {
        return result_;
      }

      public static final int GRANTED_ITEM_DEFS_FIELD_NUMBER = 6;
      private java.util.List grantedItemDefs_;
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public java.util.List
          getGrantedItemDefsList() {
        return grantedItemDefs_;
      }
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public int getGrantedItemDefsCount() {
        return grantedItemDefs_.size();
      }
      /**
       * repeated uint32 granted_item_defs = 6;
       */
      public int getGrantedItemDefs(int index) {
        return grantedItemDefs_.get(index);
      }

      private void initFields() {
        itemDef_ = 0;
        numCorrect_ = 0;
        numFails_ = 0;
        result_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
        grantedItemDefs_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, itemDef_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, numCorrect_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeUInt32(3, numFails_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeEnum(4, result_.getNumber());
        }
        for (int i = 0; i < grantedItemDefs_.size(); i++) {
          output.writeUInt32(6, grantedItemDefs_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, itemDef_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, numCorrect_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, numFails_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(4, result_.getNumber());
        }
        {
          int dataSize = 0;
          for (int i = 0; i < grantedItemDefs_.size(); i++) {
            dataSize += com.google.protobuf.CodedOutputStream
              .computeUInt32SizeNoTag(grantedItemDefs_.get(i));
          }
          size += dataSize;
          size += 1 * getGrantedItemDefsList().size();
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_PredictionResult.Prediction}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PredictionResult.Prediction)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          itemDef_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          numCorrect_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          numFails_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          result_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
          bitField0_ = (bitField0_ & ~0x00000008);
          grantedItemDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.itemDef_ = itemDef_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.numCorrect_ = numCorrect_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.numFails_ = numFails_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.result_ = result_;
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = java.util.Collections.unmodifiableList(grantedItemDefs_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.grantedItemDefs_ = grantedItemDefs_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance()) return this;
          if (other.hasItemDef()) {
            setItemDef(other.getItemDef());
          }
          if (other.hasNumCorrect()) {
            setNumCorrect(other.getNumCorrect());
          }
          if (other.hasNumFails()) {
            setNumFails(other.getNumFails());
          }
          if (other.hasResult()) {
            setResult(other.getResult());
          }
          if (!other.grantedItemDefs_.isEmpty()) {
            if (grantedItemDefs_.isEmpty()) {
              grantedItemDefs_ = other.grantedItemDefs_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureGrantedItemDefsIsMutable();
              grantedItemDefs_.addAll(other.grantedItemDefs_);
            }
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int itemDef_ ;
        /**
         * optional uint32 item_def = 1;
         */
        public boolean hasItemDef() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 item_def = 1;
         */
        public int getItemDef() {
          return itemDef_;
        }
        /**
         * optional uint32 item_def = 1;
         */
        public Builder setItemDef(int value) {
          bitField0_ |= 0x00000001;
          itemDef_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 item_def = 1;
         */
        public Builder clearItemDef() {
          bitField0_ = (bitField0_ & ~0x00000001);
          itemDef_ = 0;
          onChanged();
          return this;
        }

        private int numCorrect_ ;
        /**
         * optional uint32 num_correct = 2;
         */
        public boolean hasNumCorrect() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public int getNumCorrect() {
          return numCorrect_;
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public Builder setNumCorrect(int value) {
          bitField0_ |= 0x00000002;
          numCorrect_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 num_correct = 2;
         */
        public Builder clearNumCorrect() {
          bitField0_ = (bitField0_ & ~0x00000002);
          numCorrect_ = 0;
          onChanged();
          return this;
        }

        private int numFails_ ;
        /**
         * optional uint32 num_fails = 3;
         */
        public boolean hasNumFails() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public int getNumFails() {
          return numFails_;
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public Builder setNumFails(int value) {
          bitField0_ |= 0x00000004;
          numFails_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 num_fails = 3;
         */
        public Builder clearNumFails() {
          bitField0_ = (bitField0_ & ~0x00000004);
          numFails_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult result_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public boolean hasResult() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult getResult() {
          return result_;
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public Builder setResult(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000008;
          result_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .CDOTAUserMsg_PredictionResult.Prediction.EResult result = 4 [default = k_eResult_ItemGranted];
         */
        public Builder clearResult() {
          bitField0_ = (bitField0_ & ~0x00000008);
          result_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.EResult.k_eResult_ItemGranted;
          onChanged();
          return this;
        }

        private java.util.List grantedItemDefs_ = java.util.Collections.emptyList();
        private void ensureGrantedItemDefsIsMutable() {
          if (!((bitField0_ & 0x00000010) == 0x00000010)) {
            grantedItemDefs_ = new java.util.ArrayList(grantedItemDefs_);
            bitField0_ |= 0x00000010;
           }
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public java.util.List
            getGrantedItemDefsList() {
          return java.util.Collections.unmodifiableList(grantedItemDefs_);
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public int getGrantedItemDefsCount() {
          return grantedItemDefs_.size();
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public int getGrantedItemDefs(int index) {
          return grantedItemDefs_.get(index);
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder setGrantedItemDefs(
            int index, int value) {
          ensureGrantedItemDefsIsMutable();
          grantedItemDefs_.set(index, value);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder addGrantedItemDefs(int value) {
          ensureGrantedItemDefsIsMutable();
          grantedItemDefs_.add(value);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder addAllGrantedItemDefs(
            java.lang.Iterable values) {
          ensureGrantedItemDefsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, grantedItemDefs_);
          onChanged();
          return this;
        }
        /**
         * repeated uint32 granted_item_defs = 6;
         */
        public Builder clearGrantedItemDefs() {
          grantedItemDefs_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PredictionResult.Prediction)
      }

      static {
        defaultInstance = new Prediction(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PredictionResult.Prediction)
    }

    private int bitField0_;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 1;
    private int accountId_;
    /**
     * optional uint32 account_id = 1;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 account_id = 1;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int MATCH_ID_FIELD_NUMBER = 2;
    private long matchId_;
    /**
     * optional uint64 match_id = 2;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint64 match_id = 2;
     */
    public long getMatchId() {
      return matchId_;
    }

    public static final int CORRECT_FIELD_NUMBER = 3;
    private boolean correct_;
    /**
     * optional bool correct = 3;
     */
    public boolean hasCorrect() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool correct = 3;
     */
    public boolean getCorrect() {
      return correct_;
    }

    public static final int PREDICTIONS_FIELD_NUMBER = 4;
    private java.util.List predictions_;
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public java.util.List getPredictionsList() {
      return predictions_;
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public java.util.List 
        getPredictionsOrBuilderList() {
      return predictions_;
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public int getPredictionsCount() {
      return predictions_.size();
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index) {
      return predictions_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
        int index) {
      return predictions_.get(index);
    }

    private void initFields() {
      accountId_ = 0;
      matchId_ = 0L;
      correct_ = false;
      predictions_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, accountId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt64(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, correct_);
      }
      for (int i = 0; i < predictions_.size(); i++) {
        output.writeMessage(4, predictions_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, accountId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, matchId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, correct_);
      }
      for (int i = 0; i < predictions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, predictions_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PredictionResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PredictionResult)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPredictionsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        correct_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (predictionsBuilder_ == null) {
          predictions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          predictionsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PredictionResult_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountId_ = accountId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.matchId_ = matchId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.correct_ = correct_;
        if (predictionsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            predictions_ = java.util.Collections.unmodifiableList(predictions_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.predictions_ = predictions_;
        } else {
          result.predictions_ = predictionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.getDefaultInstance()) return this;
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (other.hasCorrect()) {
          setCorrect(other.getCorrect());
        }
        if (predictionsBuilder_ == null) {
          if (!other.predictions_.isEmpty()) {
            if (predictions_.isEmpty()) {
              predictions_ = other.predictions_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensurePredictionsIsMutable();
              predictions_.addAll(other.predictions_);
            }
            onChanged();
          }
        } else {
          if (!other.predictions_.isEmpty()) {
            if (predictionsBuilder_.isEmpty()) {
              predictionsBuilder_.dispose();
              predictionsBuilder_ = null;
              predictions_ = other.predictions_;
              bitField0_ = (bitField0_ & ~0x00000008);
              predictionsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPredictionsFieldBuilder() : null;
            } else {
              predictionsBuilder_.addAllMessages(other.predictions_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int accountId_ ;
      /**
       * optional uint32 account_id = 1;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 account_id = 1;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000001;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private long matchId_ ;
      /**
       * optional uint64 match_id = 2;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint64 match_id = 2;
       */
      public long getMatchId() {
        return matchId_;
      }
      /**
       * optional uint64 match_id = 2;
       */
      public Builder setMatchId(long value) {
        bitField0_ |= 0x00000002;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 match_id = 2;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        matchId_ = 0L;
        onChanged();
        return this;
      }

      private boolean correct_ ;
      /**
       * optional bool correct = 3;
       */
      public boolean hasCorrect() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool correct = 3;
       */
      public boolean getCorrect() {
        return correct_;
      }
      /**
       * optional bool correct = 3;
       */
      public Builder setCorrect(boolean value) {
        bitField0_ |= 0x00000004;
        correct_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool correct = 3;
       */
      public Builder clearCorrect() {
        bitField0_ = (bitField0_ & ~0x00000004);
        correct_ = false;
        onChanged();
        return this;
      }

      private java.util.List predictions_ =
        java.util.Collections.emptyList();
      private void ensurePredictionsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          predictions_ = new java.util.ArrayList(predictions_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder> predictionsBuilder_;

      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List getPredictionsList() {
        if (predictionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(predictions_);
        } else {
          return predictionsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public int getPredictionsCount() {
        if (predictionsBuilder_ == null) {
          return predictions_.size();
        } else {
          return predictionsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction getPredictions(int index) {
        if (predictionsBuilder_ == null) {
          return predictions_.get(index);
        } else {
          return predictionsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder setPredictions(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.set(index, value);
          onChanged();
        } else {
          predictionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder setPredictions(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.set(index, builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.add(value);
          onChanged();
        } else {
          predictionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction value) {
        if (predictionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePredictionsIsMutable();
          predictions_.add(index, value);
          onChanged();
        } else {
          predictionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.add(builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addPredictions(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder builderForValue) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.add(index, builderForValue.build());
          onChanged();
        } else {
          predictionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder addAllPredictions(
          java.lang.Iterable values) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, predictions_);
          onChanged();
        } else {
          predictionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder clearPredictions() {
        if (predictionsBuilder_ == null) {
          predictions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          predictionsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public Builder removePredictions(int index) {
        if (predictionsBuilder_ == null) {
          ensurePredictionsIsMutable();
          predictions_.remove(index);
          onChanged();
        } else {
          predictionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder getPredictionsBuilder(
          int index) {
        return getPredictionsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder getPredictionsOrBuilder(
          int index) {
        if (predictionsBuilder_ == null) {
          return predictions_.get(index);  } else {
          return predictionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List 
           getPredictionsOrBuilderList() {
        if (predictionsBuilder_ != null) {
          return predictionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(predictions_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder addPredictionsBuilder() {
        return getPredictionsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder addPredictionsBuilder(
          int index) {
        return getPredictionsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PredictionResult.Prediction predictions = 4;
       */
      public java.util.List 
           getPredictionsBuilderList() {
        return getPredictionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder> 
          getPredictionsFieldBuilder() {
        if (predictionsBuilder_ == null) {
          predictionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.Prediction.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PredictionResult.PredictionOrBuilder>(
                  predictions_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          predictions_ = null;
        }
        return predictionsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PredictionResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PredictionResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PredictionResult)
  }

  public interface CDOTAResponseQuerySerializedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAResponseQuerySerialized)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index);
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    int getFactsCount();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    java.util.List 
        getFactsOrBuilderList();
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAResponseQuerySerialized}
   */
  public static final class CDOTAResponseQuerySerialized extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAResponseQuerySerialized)
      CDOTAResponseQuerySerializedOrBuilder {
    // Use CDOTAResponseQuerySerialized.newBuilder() to construct.
    private CDOTAResponseQuerySerialized(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAResponseQuerySerialized(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAResponseQuerySerialized defaultInstance;
    public static CDOTAResponseQuerySerialized getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAResponseQuerySerialized getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAResponseQuerySerialized(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                facts_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              facts_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = java.util.Collections.unmodifiableList(facts_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAResponseQuerySerialized parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAResponseQuerySerialized(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface FactOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAResponseQuerySerialized.Fact)
        com.google.protobuf.MessageOrBuilder {

      /**
       * required int32 key = 1;
       */
      boolean hasKey();
      /**
       * required int32 key = 1;
       */
      int getKey();

      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      boolean hasValtype();
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype();

      /**
       * optional float val_numeric = 3;
       */
      boolean hasValNumeric();
      /**
       * optional float val_numeric = 3;
       */
      float getValNumeric();

      /**
       * optional string val_string = 4;
       */
      boolean hasValString();
      /**
       * optional string val_string = 4;
       */
      java.lang.String getValString();
      /**
       * optional string val_string = 4;
       */
      com.google.protobuf.ByteString
          getValStringBytes();
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
     */
    public static final class Fact extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAResponseQuerySerialized.Fact)
        FactOrBuilder {
      // Use Fact.newBuilder() to construct.
      private Fact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Fact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Fact defaultInstance;
      public static Fact getDefaultInstance() {
        return defaultInstance;
      }

      public Fact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Fact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                key_ = input.readInt32();
                break;
              }
              case 16: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(2, rawValue);
                } else {
                  bitField0_ |= 0x00000002;
                  valtype_ = value;
                }
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                valNumeric_ = input.readFloat();
                break;
              }
              case 34: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                valString_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Fact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Fact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      /**
       * Protobuf enum {@code CDOTAResponseQuerySerialized.Fact.ValueType}
       */
      public enum ValueType
          implements com.google.protobuf.ProtocolMessageEnum {
        /**
         * NUMERIC = 1;
         */
        NUMERIC(0, 1),
        /**
         * STRING = 2;
         */
        STRING(1, 2),
        ;

        /**
         * NUMERIC = 1;
         */
        public static final int NUMERIC_VALUE = 1;
        /**
         * STRING = 2;
         */
        public static final int STRING_VALUE = 2;


        public final int getNumber() { return value; }

        public static ValueType valueOf(int value) {
          switch (value) {
            case 1: return NUMERIC;
            case 2: return STRING;
            default: return null;
          }
        }

        public static com.google.protobuf.Internal.EnumLiteMap
            internalGetValueMap() {
          return internalValueMap;
        }
        private static com.google.protobuf.Internal.EnumLiteMap
            internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap() {
                public ValueType findValueByNumber(int number) {
                  return ValueType.valueOf(number);
                }
              };

        public final com.google.protobuf.Descriptors.EnumValueDescriptor
            getValueDescriptor() {
          return getDescriptor().getValues().get(index);
        }
        public final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptorForType() {
          return getDescriptor();
        }
        public static final com.google.protobuf.Descriptors.EnumDescriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.getDescriptor().getEnumTypes().get(0);
        }

        private static final ValueType[] VALUES = values();

        public static ValueType valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
          if (desc.getType() != getDescriptor()) {
            throw new java.lang.IllegalArgumentException(
              "EnumValueDescriptor is not for this type.");
          }
          return VALUES[desc.getIndex()];
        }

        private final int index;
        private final int value;

        private ValueType(int index, int value) {
          this.index = index;
          this.value = value;
        }

        // @@protoc_insertion_point(enum_scope:CDOTAResponseQuerySerialized.Fact.ValueType)
      }

      private int bitField0_;
      public static final int KEY_FIELD_NUMBER = 1;
      private int key_;
      /**
       * required int32 key = 1;
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 key = 1;
       */
      public int getKey() {
        return key_;
      }

      public static final int VALTYPE_FIELD_NUMBER = 2;
      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_;
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public boolean hasValtype() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
        return valtype_;
      }

      public static final int VAL_NUMERIC_FIELD_NUMBER = 3;
      private float valNumeric_;
      /**
       * optional float val_numeric = 3;
       */
      public boolean hasValNumeric() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float val_numeric = 3;
       */
      public float getValNumeric() {
        return valNumeric_;
      }

      public static final int VAL_STRING_FIELD_NUMBER = 4;
      private java.lang.Object valString_;
      /**
       * optional string val_string = 4;
       */
      public boolean hasValString() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string val_string = 4;
       */
      public java.lang.String getValString() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            valString_ = s;
          }
          return s;
        }
      }
      /**
       * optional string val_string = 4;
       */
      public com.google.protobuf.ByteString
          getValStringBytes() {
        java.lang.Object ref = valString_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          valString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        key_ = 0;
        valtype_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        valNumeric_ = 0F;
        valString_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeEnum(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeBytes(4, getValStringBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, key_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, valtype_.getNumber());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, valNumeric_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(4, getValStringBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAResponseQuerySerialized.Fact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAResponseQuerySerialized.Fact)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          valtype_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          bitField0_ = (bitField0_ & ~0x00000002);
          valNumeric_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          valString_ = "";
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.valtype_ = valtype_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.valNumeric_ = valNumeric_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.valString_ = valString_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance()) return this;
          if (other.hasKey()) {
            setKey(other.getKey());
          }
          if (other.hasValtype()) {
            setValtype(other.getValtype());
          }
          if (other.hasValNumeric()) {
            setValNumeric(other.getValNumeric());
          }
          if (other.hasValString()) {
            bitField0_ |= 0x00000008;
            valString_ = other.valString_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasKey()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int key_ ;
        /**
         * required int32 key = 1;
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * required int32 key = 1;
         */
        public int getKey() {
          return key_;
        }
        /**
         * required int32 key = 1;
         */
        public Builder setKey(int value) {
          bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * required int32 key = 1;
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = 0;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType valtype_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public boolean hasValtype() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType getValtype() {
          return valtype_;
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder setValtype(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          valtype_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .CDOTAResponseQuerySerialized.Fact.ValueType valtype = 2 [default = NUMERIC];
         */
        public Builder clearValtype() {
          bitField0_ = (bitField0_ & ~0x00000002);
          valtype_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.ValueType.NUMERIC;
          onChanged();
          return this;
        }

        private float valNumeric_ ;
        /**
         * optional float val_numeric = 3;
         */
        public boolean hasValNumeric() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float val_numeric = 3;
         */
        public float getValNumeric() {
          return valNumeric_;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder setValNumeric(float value) {
          bitField0_ |= 0x00000004;
          valNumeric_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float val_numeric = 3;
         */
        public Builder clearValNumeric() {
          bitField0_ = (bitField0_ & ~0x00000004);
          valNumeric_ = 0F;
          onChanged();
          return this;
        }

        private java.lang.Object valString_ = "";
        /**
         * optional string val_string = 4;
         */
        public boolean hasValString() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional string val_string = 4;
         */
        public java.lang.String getValString() {
          java.lang.Object ref = valString_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              valString_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public com.google.protobuf.ByteString
            getValStringBytes() {
          java.lang.Object ref = valString_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            valString_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValString(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder clearValString() {
          bitField0_ = (bitField0_ & ~0x00000008);
          valString_ = getDefaultInstance().getValString();
          onChanged();
          return this;
        }
        /**
         * optional string val_string = 4;
         */
        public Builder setValStringBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
          valString_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized.Fact)
      }

      static {
        defaultInstance = new Fact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized.Fact)
    }

    public static final int FACTS_FIELD_NUMBER = 1;
    private java.util.List facts_;
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List getFactsList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public java.util.List 
        getFactsOrBuilderList() {
      return facts_;
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public int getFactsCount() {
      return facts_.size();
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
      return facts_.get(index);
    }
    /**
     * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
        int index) {
      return facts_.get(index);
    }

    private void initFields() {
      facts_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      for (int i = 0; i < getFactsCount(); i++) {
        if (!getFacts(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < facts_.size(); i++) {
        output.writeMessage(1, facts_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < facts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, facts_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAResponseQuerySerialized}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAResponseQuerySerialized)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFactsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          factsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAResponseQuerySerialized_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized(this);
        int from_bitField0_ = bitField0_;
        if (factsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            facts_ = java.util.Collections.unmodifiableList(facts_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.facts_ = facts_;
        } else {
          result.facts_ = factsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance()) return this;
        if (factsBuilder_ == null) {
          if (!other.facts_.isEmpty()) {
            if (facts_.isEmpty()) {
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFactsIsMutable();
              facts_.addAll(other.facts_);
            }
            onChanged();
          }
        } else {
          if (!other.facts_.isEmpty()) {
            if (factsBuilder_.isEmpty()) {
              factsBuilder_.dispose();
              factsBuilder_ = null;
              facts_ = other.facts_;
              bitField0_ = (bitField0_ & ~0x00000001);
              factsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getFactsFieldBuilder() : null;
            } else {
              factsBuilder_.addAllMessages(other.facts_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getFactsCount(); i++) {
          if (!getFacts(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List facts_ =
        java.util.Collections.emptyList();
      private void ensureFactsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          facts_ = new java.util.ArrayList(facts_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder> factsBuilder_;

      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List getFactsList() {
        if (factsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(facts_);
        } else {
          return factsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public int getFactsCount() {
        if (factsBuilder_ == null) {
          return facts_.size();
        } else {
          return factsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact getFacts(int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);
        } else {
          return factsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.set(index, value);
          onChanged();
        } else {
          factsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder setFacts(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.set(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(value);
          onChanged();
        } else {
          factsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact value) {
        if (factsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFactsIsMutable();
          facts_.add(index, value);
          onChanged();
        } else {
          factsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addFacts(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder builderForValue) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.add(index, builderForValue.build());
          onChanged();
        } else {
          factsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder addAllFacts(
          java.lang.Iterable values) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, facts_);
          onChanged();
        } else {
          factsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder clearFacts() {
        if (factsBuilder_ == null) {
          facts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          factsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public Builder removeFacts(int index) {
        if (factsBuilder_ == null) {
          ensureFactsIsMutable();
          facts_.remove(index);
          onChanged();
        } else {
          factsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder getFactsBuilder(
          int index) {
        return getFactsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder getFactsOrBuilder(
          int index) {
        if (factsBuilder_ == null) {
          return facts_.get(index);  } else {
          return factsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsOrBuilderList() {
        if (factsBuilder_ != null) {
          return factsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(facts_);
        }
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder() {
        return getFactsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder addFactsBuilder(
          int index) {
        return getFactsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.getDefaultInstance());
      }
      /**
       * repeated .CDOTAResponseQuerySerialized.Fact facts = 1;
       */
      public java.util.List 
           getFactsBuilderList() {
        return getFactsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder> 
          getFactsFieldBuilder() {
        if (factsBuilder_ == null) {
          factsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Fact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.FactOrBuilder>(
                  facts_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          facts_ = null;
        }
        return factsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAResponseQuerySerialized)
    }

    static {
      defaultInstance = new CDOTAResponseQuerySerialized(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAResponseQuerySerialized)
  }

  public interface CDOTASpeechMatchOnClientOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTASpeechMatchOnClient)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 concept = 1;
     */
    boolean hasConcept();
    /**
     * optional int32 concept = 1;
     */
    int getConcept();

    /**
     * optional int32 recipient_type = 2;
     */
    boolean hasRecipientType();
    /**
     * optional int32 recipient_type = 2;
     */
    int getRecipientType();

    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    boolean hasResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized getResponsequery();
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder();

    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    boolean hasRandomseed();
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    int getRandomseed();
  }
  /**
   * Protobuf type {@code CDOTASpeechMatchOnClient}
   */
  public static final class CDOTASpeechMatchOnClient extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTASpeechMatchOnClient)
      CDOTASpeechMatchOnClientOrBuilder {
    // Use CDOTASpeechMatchOnClient.newBuilder() to construct.
    private CDOTASpeechMatchOnClient(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTASpeechMatchOnClient(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTASpeechMatchOnClient defaultInstance;
    public static CDOTASpeechMatchOnClient getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTASpeechMatchOnClient getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTASpeechMatchOnClient(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              concept_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              recipientType_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = responsequery_.toBuilder();
              }
              responsequery_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(responsequery_);
                responsequery_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              randomseed_ = input.readSFixed32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTASpeechMatchOnClient parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTASpeechMatchOnClient(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CONCEPT_FIELD_NUMBER = 1;
    private int concept_;
    /**
     * optional int32 concept = 1;
     */
    public boolean hasConcept() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 concept = 1;
     */
    public int getConcept() {
      return concept_;
    }

    public static final int RECIPIENT_TYPE_FIELD_NUMBER = 2;
    private int recipientType_;
    /**
     * optional int32 recipient_type = 2;
     */
    public boolean hasRecipientType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 recipient_type = 2;
     */
    public int getRecipientType() {
      return recipientType_;
    }

    public static final int RESPONSEQUERY_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized responsequery_;
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public boolean hasResponsequery() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized getResponsequery() {
      return responsequery_;
    }
    /**
     * optional .CDOTAResponseQuerySerialized responsequery = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
      return responsequery_;
    }

    public static final int RANDOMSEED_FIELD_NUMBER = 4;
    private int randomseed_;
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public boolean hasRandomseed() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional sfixed32 randomseed = 4 [default = 0];
     */
    public int getRandomseed() {
      return randomseed_;
    }

    private void initFields() {
      concept_ = 0;
      recipientType_ = 0;
      responsequery_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      randomseed_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (hasResponsequery()) {
        if (!getResponsequery().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeSFixed32(4, randomseed_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, concept_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, recipientType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, responsequery_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSFixed32Size(4, randomseed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTASpeechMatchOnClient}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTASpeechMatchOnClient)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getResponsequeryFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        concept_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        recipientType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (responsequeryBuilder_ == null) {
          responsequery_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        randomseed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTASpeechMatchOnClient_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.concept_ = concept_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.recipientType_ = recipientType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (responsequeryBuilder_ == null) {
          result.responsequery_ = responsequery_;
        } else {
          result.responsequery_ = responsequeryBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.randomseed_ = randomseed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance()) return this;
        if (other.hasConcept()) {
          setConcept(other.getConcept());
        }
        if (other.hasRecipientType()) {
          setRecipientType(other.getRecipientType());
        }
        if (other.hasResponsequery()) {
          mergeResponsequery(other.getResponsequery());
        }
        if (other.hasRandomseed()) {
          setRandomseed(other.getRandomseed());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (hasResponsequery()) {
          if (!getResponsequery().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int concept_ ;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder setConcept(int value) {
        bitField0_ |= 0x00000001;
        concept_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 concept = 1;
       */
      public Builder clearConcept() {
        bitField0_ = (bitField0_ & ~0x00000001);
        concept_ = 0;
        onChanged();
        return this;
      }

      private int recipientType_ ;
      /**
       * optional int32 recipient_type = 2;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public int getRecipientType() {
        return recipientType_;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder setRecipientType(int value) {
        bitField0_ |= 0x00000002;
        recipientType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 recipient_type = 2;
       */
      public Builder clearRecipientType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        recipientType_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized responsequery_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder> responsequeryBuilder_;
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public boolean hasResponsequery() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized getResponsequery() {
        if (responsequeryBuilder_ == null) {
          return responsequery_;
        } else {
          return responsequeryBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          responsequery_ = value;
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder setResponsequery(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder builderForValue) {
        if (responsequeryBuilder_ == null) {
          responsequery_ = builderForValue.build();
          onChanged();
        } else {
          responsequeryBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder mergeResponsequery(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized value) {
        if (responsequeryBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              responsequery_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance()) {
            responsequery_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.newBuilder(responsequery_).mergeFrom(value).buildPartial();
          } else {
            responsequery_ = value;
          }
          onChanged();
        } else {
          responsequeryBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public Builder clearResponsequery() {
        if (responsequeryBuilder_ == null) {
          responsequery_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.getDefaultInstance();
          onChanged();
        } else {
          responsequeryBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder getResponsequeryBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResponsequeryFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder getResponsequeryOrBuilder() {
        if (responsequeryBuilder_ != null) {
          return responsequeryBuilder_.getMessageOrBuilder();
        } else {
          return responsequery_;
        }
      }
      /**
       * optional .CDOTAResponseQuerySerialized responsequery = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder> 
          getResponsequeryFieldBuilder() {
        if (responsequeryBuilder_ == null) {
          responsequeryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerialized.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAResponseQuerySerializedOrBuilder>(
                  getResponsequery(),
                  getParentForChildren(),
                  isClean());
          responsequery_ = null;
        }
        return responsequeryBuilder_;
      }

      private int randomseed_ ;
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public boolean hasRandomseed() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public int getRandomseed() {
        return randomseed_;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder setRandomseed(int value) {
        bitField0_ |= 0x00000008;
        randomseed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sfixed32 randomseed = 4 [default = 0];
       */
      public Builder clearRandomseed() {
        bitField0_ = (bitField0_ & ~0x00000008);
        randomseed_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTASpeechMatchOnClient)
    }

    static {
      defaultInstance = new CDOTASpeechMatchOnClient(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTASpeechMatchOnClient)
  }

  public interface CDOTAUserMsg_UnitEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    boolean hasMsgType();
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages getMsgType();

    /**
     * required int32 entity_index = 2;
     */
    boolean hasEntityIndex();
    /**
     * required int32 entity_index = 2;
     */
    int getEntityIndex();

    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    boolean hasSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech();
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    boolean hasSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute();
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    boolean hasAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    boolean hasRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    boolean hasBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact();
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder();

    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    boolean hasFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture();
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder();

    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    boolean hasSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient();
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UnitEvent}
   */
  public static final class CDOTAUserMsg_UnitEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent)
      CDOTAUserMsg_UnitEventOrBuilder {
    // Use CDOTAUserMsg_UnitEvent.newBuilder() to construct.
    private CDOTAUserMsg_UnitEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UnitEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UnitEvent defaultInstance;
    public static CDOTAUserMsg_UnitEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UnitEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                msgType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityIndex_ = input.readInt32();
              break;
            }
            case 26: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = speech_.toBuilder();
              }
              speech_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speech_);
                speech_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = speechMute_.toBuilder();
              }
              speechMute_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMute_);
                speechMute_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = addGesture_.toBuilder();
              }
              addGesture_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(addGesture_);
                addGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 50: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = removeGesture_.toBuilder();
              }
              removeGesture_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(removeGesture_);
                removeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = bloodImpact_.toBuilder();
              }
              bloodImpact_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(bloodImpact_);
                bloodImpact_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = fadeGesture_.toBuilder();
              }
              fadeGesture_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fadeGesture_);
                fadeGesture_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 74: {
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder subBuilder = null;
              if (((bitField0_ & 0x00000100) == 0x00000100)) {
                subBuilder = speechMatchOnClient_.toBuilder();
              }
              speechMatchOnClient_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(speechMatchOnClient_);
                speechMatchOnClient_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000100;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UnitEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UnitEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface IntervalOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.Interval)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional float start = 1;
       */
      boolean hasStart();
      /**
       * optional float start = 1;
       */
      float getStart();

      /**
       * optional float range = 2;
       */
      boolean hasRange();
      /**
       * optional float range = 2;
       */
      float getRange();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.Interval}
     */
    public static final class Interval extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.Interval)
        IntervalOrBuilder {
      // Use Interval.newBuilder() to construct.
      private Interval(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Interval(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Interval defaultInstance;
      public static Interval getDefaultInstance() {
        return defaultInstance;
      }

      public Interval getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Interval(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                start_ = input.readFloat();
                break;
              }
              case 21: {
                bitField0_ |= 0x00000002;
                range_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Interval parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Interval(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int START_FIELD_NUMBER = 1;
      private float start_;
      /**
       * optional float start = 1;
       */
      public boolean hasStart() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float start = 1;
       */
      public float getStart() {
        return start_;
      }

      public static final int RANGE_FIELD_NUMBER = 2;
      private float range_;
      /**
       * optional float range = 2;
       */
      public boolean hasRange() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float range = 2;
       */
      public float getRange() {
        return range_;
      }

      private void initFields() {
        start_ = 0F;
        range_ = 0F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFloat(1, start_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeFloat(2, range_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(1, start_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(2, range_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.Interval}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.Interval)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          start_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000001);
          range_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.start_ = start_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.range_ = range_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance()) return this;
          if (other.hasStart()) {
            setStart(other.getStart());
          }
          if (other.hasRange()) {
            setRange(other.getRange());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private float start_ ;
        /**
         * optional float start = 1;
         */
        public boolean hasStart() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional float start = 1;
         */
        public float getStart() {
          return start_;
        }
        /**
         * optional float start = 1;
         */
        public Builder setStart(float value) {
          bitField0_ |= 0x00000001;
          start_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float start = 1;
         */
        public Builder clearStart() {
          bitField0_ = (bitField0_ & ~0x00000001);
          start_ = 0F;
          onChanged();
          return this;
        }

        private float range_ ;
        /**
         * optional float range = 2;
         */
        public boolean hasRange() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional float range = 2;
         */
        public float getRange() {
          return range_;
        }
        /**
         * optional float range = 2;
         */
        public Builder setRange(float value) {
          bitField0_ |= 0x00000002;
          range_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float range = 2;
         */
        public Builder clearRange() {
          bitField0_ = (bitField0_ & ~0x00000002);
          range_ = 0F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.Interval)
      }

      static {
        defaultInstance = new Interval(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.Interval)
    }

    public interface SpeechOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.Speech)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 concept = 1;
       */
      boolean hasConcept();
      /**
       * optional int32 concept = 1;
       */
      int getConcept();

      /**
       * optional string response = 2;
       */
      boolean hasResponse();
      /**
       * optional string response = 2;
       */
      java.lang.String getResponse();
      /**
       * optional string response = 2;
       */
      com.google.protobuf.ByteString
          getResponseBytes();

      /**
       * optional int32 recipient_type = 3;
       */
      boolean hasRecipientType();
      /**
       * optional int32 recipient_type = 3;
       */
      int getRecipientType();

      /**
       * optional int32 level = 4;
       */
      boolean hasLevel();
      /**
       * optional int32 level = 4;
       */
      int getLevel();

      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean hasMuteable();
      /**
       * optional bool muteable = 5 [default = false];
       */
      boolean getMuteable();

      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      boolean hasPredelay();
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay();
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder();

      /**
       * optional uint32 flags = 7;
       */
      boolean hasFlags();
      /**
       * optional uint32 flags = 7;
       */
      int getFlags();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
     */
    public static final class Speech extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.Speech)
        SpeechOrBuilder {
      // Use Speech.newBuilder() to construct.
      private Speech(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Speech(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Speech defaultInstance;
      public static Speech getDefaultInstance() {
        return defaultInstance;
      }

      public Speech getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Speech(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                concept_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                response_ = bs;
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                recipientType_ = input.readInt32();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                level_ = input.readInt32();
                break;
              }
              case 40: {
                bitField0_ |= 0x00000010;
                muteable_ = input.readBool();
                break;
              }
              case 50: {
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = predelay_.toBuilder();
                }
                predelay_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(predelay_);
                  predelay_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
              case 56: {
                bitField0_ |= 0x00000040;
                flags_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public Speech parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Speech(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CONCEPT_FIELD_NUMBER = 1;
      private int concept_;
      /**
       * optional int32 concept = 1;
       */
      public boolean hasConcept() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 concept = 1;
       */
      public int getConcept() {
        return concept_;
      }

      public static final int RESPONSE_FIELD_NUMBER = 2;
      private java.lang.Object response_;
      /**
       * optional string response = 2;
       */
      public boolean hasResponse() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string response = 2;
       */
      public java.lang.String getResponse() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            response_ = s;
          }
          return s;
        }
      }
      /**
       * optional string response = 2;
       */
      public com.google.protobuf.ByteString
          getResponseBytes() {
        java.lang.Object ref = response_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          response_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int RECIPIENT_TYPE_FIELD_NUMBER = 3;
      private int recipientType_;
      /**
       * optional int32 recipient_type = 3;
       */
      public boolean hasRecipientType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 recipient_type = 3;
       */
      public int getRecipientType() {
        return recipientType_;
      }

      public static final int LEVEL_FIELD_NUMBER = 4;
      private int level_;
      /**
       * optional int32 level = 4;
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 level = 4;
       */
      public int getLevel() {
        return level_;
      }

      public static final int MUTEABLE_FIELD_NUMBER = 5;
      private boolean muteable_;
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean hasMuteable() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool muteable = 5 [default = false];
       */
      public boolean getMuteable() {
        return muteable_;
      }

      public static final int PREDELAY_FIELD_NUMBER = 6;
      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval predelay_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public boolean hasPredelay() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay() {
        return predelay_;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder() {
        return predelay_;
      }

      public static final int FLAGS_FIELD_NUMBER = 7;
      private int flags_;
      /**
       * optional uint32 flags = 7;
       */
      public boolean hasFlags() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 flags = 7;
       */
      public int getFlags() {
        return flags_;
      }

      private void initFields() {
        concept_ = 0;
        response_ = "";
        recipientType_ = 0;
        level_ = 0;
        muteable_ = false;
        predelay_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        flags_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt32(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeBool(5, muteable_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeMessage(6, predelay_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeUInt32(7, flags_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, concept_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getResponseBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, recipientType_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, level_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, muteable_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, predelay_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(7, flags_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.Speech}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.Speech)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPredelayFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          concept_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          response_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          recipientType_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          level_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          muteable_ = false;
          bitField0_ = (bitField0_ & ~0x00000010);
          if (predelayBuilder_ == null) {
            predelay_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
          } else {
            predelayBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          flags_ = 0;
          bitField0_ = (bitField0_ & ~0x00000040);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.concept_ = concept_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.response_ = response_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.recipientType_ = recipientType_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.level_ = level_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.muteable_ = muteable_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          if (predelayBuilder_ == null) {
            result.predelay_ = predelay_;
          } else {
            result.predelay_ = predelayBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000040;
          }
          result.flags_ = flags_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) return this;
          if (other.hasConcept()) {
            setConcept(other.getConcept());
          }
          if (other.hasResponse()) {
            bitField0_ |= 0x00000002;
            response_ = other.response_;
            onChanged();
          }
          if (other.hasRecipientType()) {
            setRecipientType(other.getRecipientType());
          }
          if (other.hasLevel()) {
            setLevel(other.getLevel());
          }
          if (other.hasMuteable()) {
            setMuteable(other.getMuteable());
          }
          if (other.hasPredelay()) {
            mergePredelay(other.getPredelay());
          }
          if (other.hasFlags()) {
            setFlags(other.getFlags());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int concept_ ;
        /**
         * optional int32 concept = 1;
         */
        public boolean hasConcept() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 concept = 1;
         */
        public int getConcept() {
          return concept_;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder setConcept(int value) {
          bitField0_ |= 0x00000001;
          concept_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 concept = 1;
         */
        public Builder clearConcept() {
          bitField0_ = (bitField0_ & ~0x00000001);
          concept_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object response_ = "";
        /**
         * optional string response = 2;
         */
        public boolean hasResponse() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string response = 2;
         */
        public java.lang.String getResponse() {
          java.lang.Object ref = response_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              response_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public com.google.protobuf.ByteString
            getResponseBytes() {
          java.lang.Object ref = response_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            response_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponse(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder clearResponse() {
          bitField0_ = (bitField0_ & ~0x00000002);
          response_ = getDefaultInstance().getResponse();
          onChanged();
          return this;
        }
        /**
         * optional string response = 2;
         */
        public Builder setResponseBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          response_ = value;
          onChanged();
          return this;
        }

        private int recipientType_ ;
        /**
         * optional int32 recipient_type = 3;
         */
        public boolean hasRecipientType() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public int getRecipientType() {
          return recipientType_;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder setRecipientType(int value) {
          bitField0_ |= 0x00000004;
          recipientType_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 recipient_type = 3;
         */
        public Builder clearRecipientType() {
          bitField0_ = (bitField0_ & ~0x00000004);
          recipientType_ = 0;
          onChanged();
          return this;
        }

        private int level_ ;
        /**
         * optional int32 level = 4;
         */
        public boolean hasLevel() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 level = 4;
         */
        public int getLevel() {
          return level_;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder setLevel(int value) {
          bitField0_ |= 0x00000008;
          level_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 level = 4;
         */
        public Builder clearLevel() {
          bitField0_ = (bitField0_ & ~0x00000008);
          level_ = 0;
          onChanged();
          return this;
        }

        private boolean muteable_ ;
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean hasMuteable() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public boolean getMuteable() {
          return muteable_;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder setMuteable(boolean value) {
          bitField0_ |= 0x00000010;
          muteable_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bool muteable = 5 [default = false];
         */
        public Builder clearMuteable() {
          bitField0_ = (bitField0_ & ~0x00000010);
          muteable_ = false;
          onChanged();
          return this;
        }

        private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval predelay_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder> predelayBuilder_;
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public boolean hasPredelay() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval getPredelay() {
          if (predelayBuilder_ == null) {
            return predelay_;
          } else {
            return predelayBuilder_.getMessage();
          }
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder setPredelay(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval value) {
          if (predelayBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            predelay_ = value;
            onChanged();
          } else {
            predelayBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder setPredelay(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder builderForValue) {
          if (predelayBuilder_ == null) {
            predelay_ = builderForValue.build();
            onChanged();
          } else {
            predelayBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder mergePredelay(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval value) {
          if (predelayBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020) &&
                predelay_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance()) {
              predelay_ =
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.newBuilder(predelay_).mergeFrom(value).buildPartial();
            } else {
              predelay_ = value;
            }
            onChanged();
          } else {
            predelayBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000020;
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public Builder clearPredelay() {
          if (predelayBuilder_ == null) {
            predelay_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.getDefaultInstance();
            onChanged();
          } else {
            predelayBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder getPredelayBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getPredelayFieldBuilder().getBuilder();
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder getPredelayOrBuilder() {
          if (predelayBuilder_ != null) {
            return predelayBuilder_.getMessageOrBuilder();
          } else {
            return predelay_;
          }
        }
        /**
         * optional .CDOTAUserMsg_UnitEvent.Interval predelay = 6;
         */
        private com.google.protobuf.SingleFieldBuilder<
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder> 
            getPredelayFieldBuilder() {
          if (predelayBuilder_ == null) {
            predelayBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Interval.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.IntervalOrBuilder>(
                    getPredelay(),
                    getParentForChildren(),
                    isClean());
            predelay_ = null;
          }
          return predelayBuilder_;
        }

        private int flags_ ;
        /**
         * optional uint32 flags = 7;
         */
        public boolean hasFlags() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * optional uint32 flags = 7;
         */
        public int getFlags() {
          return flags_;
        }
        /**
         * optional uint32 flags = 7;
         */
        public Builder setFlags(int value) {
          bitField0_ |= 0x00000040;
          flags_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 flags = 7;
         */
        public Builder clearFlags() {
          bitField0_ = (bitField0_ & ~0x00000040);
          flags_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.Speech)
      }

      static {
        defaultInstance = new Speech(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.Speech)
    }

    public interface SpeechMuteOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.SpeechMute)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional float delay = 1 [default = 0.5];
       */
      boolean hasDelay();
      /**
       * optional float delay = 1 [default = 0.5];
       */
      float getDelay();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
     */
    public static final class SpeechMute extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.SpeechMute)
        SpeechMuteOrBuilder {
      // Use SpeechMute.newBuilder() to construct.
      private SpeechMute(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private SpeechMute(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final SpeechMute defaultInstance;
      public static SpeechMute getDefaultInstance() {
        return defaultInstance;
      }

      public SpeechMute getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private SpeechMute(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 13: {
                bitField0_ |= 0x00000001;
                delay_ = input.readFloat();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public SpeechMute parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new SpeechMute(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int DELAY_FIELD_NUMBER = 1;
      private float delay_;
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public boolean hasDelay() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float delay = 1 [default = 0.5];
       */
      public float getDelay() {
        return delay_;
      }

      private void initFields() {
        delay_ = 0.5F;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeFloat(1, delay_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(1, delay_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.SpeechMute}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.SpeechMute)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          delay_ = 0.5F;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.delay_ = delay_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) return this;
          if (other.hasDelay()) {
            setDelay(other.getDelay());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private float delay_ = 0.5F;
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public boolean hasDelay() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public float getDelay() {
          return delay_;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder setDelay(float value) {
          bitField0_ |= 0x00000001;
          delay_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float delay = 1 [default = 0.5];
         */
        public Builder clearDelay() {
          bitField0_ = (bitField0_ & ~0x00000001);
          delay_ = 0.5F;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
      }

      static {
        defaultInstance = new SpeechMute(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.SpeechMute)
    }

    public interface AddGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.AddGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();

      /**
       * optional int32 slot = 2;
       */
      boolean hasSlot();
      /**
       * optional int32 slot = 2;
       */
      int getSlot();

      /**
       * optional float fade_in = 3 [default = 0];
       */
      boolean hasFadeIn();
      /**
       * optional float fade_in = 3 [default = 0];
       */
      float getFadeIn();

      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      boolean hasFadeOut();
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      float getFadeOut();

      /**
       * optional float playback_rate = 5 [default = 1];
       */
      boolean hasPlaybackRate();
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      float getPlaybackRate();

      /**
       * optional int32 sequence_variant = 6;
       */
      boolean hasSequenceVariant();
      /**
       * optional int32 sequence_variant = 6;
       */
      int getSequenceVariant();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
     */
    public static final class AddGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.AddGesture)
        AddGestureOrBuilder {
      // Use AddGesture.newBuilder() to construct.
      private AddGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private AddGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final AddGesture defaultInstance;
      public static AddGesture getDefaultInstance() {
        return defaultInstance;
      }

      public AddGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private AddGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                slot_ = input.readInt32();
                break;
              }
              case 29: {
                bitField0_ |= 0x00000004;
                fadeIn_ = input.readFloat();
                break;
              }
              case 37: {
                bitField0_ |= 0x00000008;
                fadeOut_ = input.readFloat();
                break;
              }
              case 45: {
                bitField0_ |= 0x00000010;
                playbackRate_ = input.readFloat();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000020;
                sequenceVariant_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public AddGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new AddGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      public static final int SLOT_FIELD_NUMBER = 2;
      private int slot_;
      /**
       * optional int32 slot = 2;
       */
      public boolean hasSlot() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 slot = 2;
       */
      public int getSlot() {
        return slot_;
      }

      public static final int FADE_IN_FIELD_NUMBER = 3;
      private float fadeIn_;
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public boolean hasFadeIn() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float fade_in = 3 [default = 0];
       */
      public float getFadeIn() {
        return fadeIn_;
      }

      public static final int FADE_OUT_FIELD_NUMBER = 4;
      private float fadeOut_;
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public boolean hasFadeOut() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float fade_out = 4 [default = 0.1];
       */
      public float getFadeOut() {
        return fadeOut_;
      }

      public static final int PLAYBACK_RATE_FIELD_NUMBER = 5;
      private float playbackRate_;
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      public boolean hasPlaybackRate() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float playback_rate = 5 [default = 1];
       */
      public float getPlaybackRate() {
        return playbackRate_;
      }

      public static final int SEQUENCE_VARIANT_FIELD_NUMBER = 6;
      private int sequenceVariant_;
      /**
       * optional int32 sequence_variant = 6;
       */
      public boolean hasSequenceVariant() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 sequence_variant = 6;
       */
      public int getSequenceVariant() {
        return sequenceVariant_;
      }

      private void initFields() {
        activity_ = 0;
        slot_ = 0;
        fadeIn_ = 0F;
        fadeOut_ = 0.1F;
        playbackRate_ = 1F;
        sequenceVariant_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeFloat(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeFloat(4, fadeOut_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeFloat(5, playbackRate_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeInt32(6, sequenceVariant_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, slot_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(3, fadeIn_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(4, fadeOut_);
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeFloatSize(5, playbackRate_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(6, sequenceVariant_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.AddGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.AddGesture)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          slot_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          fadeIn_ = 0F;
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeOut_ = 0.1F;
          bitField0_ = (bitField0_ & ~0x00000008);
          playbackRate_ = 1F;
          bitField0_ = (bitField0_ & ~0x00000010);
          sequenceVariant_ = 0;
          bitField0_ = (bitField0_ & ~0x00000020);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.slot_ = slot_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.fadeIn_ = fadeIn_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.fadeOut_ = fadeOut_;
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000010;
          }
          result.playbackRate_ = playbackRate_;
          if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
            to_bitField0_ |= 0x00000020;
          }
          result.sequenceVariant_ = sequenceVariant_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          if (other.hasSlot()) {
            setSlot(other.getSlot());
          }
          if (other.hasFadeIn()) {
            setFadeIn(other.getFadeIn());
          }
          if (other.hasFadeOut()) {
            setFadeOut(other.getFadeOut());
          }
          if (other.hasPlaybackRate()) {
            setPlaybackRate(other.getPlaybackRate());
          }
          if (other.hasSequenceVariant()) {
            setSequenceVariant(other.getSequenceVariant());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        private int slot_ ;
        /**
         * optional int32 slot = 2;
         */
        public boolean hasSlot() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 slot = 2;
         */
        public int getSlot() {
          return slot_;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder setSlot(int value) {
          bitField0_ |= 0x00000002;
          slot_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 slot = 2;
         */
        public Builder clearSlot() {
          bitField0_ = (bitField0_ & ~0x00000002);
          slot_ = 0;
          onChanged();
          return this;
        }

        private float fadeIn_ ;
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public boolean hasFadeIn() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public float getFadeIn() {
          return fadeIn_;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder setFadeIn(float value) {
          bitField0_ |= 0x00000004;
          fadeIn_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_in = 3 [default = 0];
         */
        public Builder clearFadeIn() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fadeIn_ = 0F;
          onChanged();
          return this;
        }

        private float fadeOut_ = 0.1F;
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public boolean hasFadeOut() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public float getFadeOut() {
          return fadeOut_;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder setFadeOut(float value) {
          bitField0_ |= 0x00000008;
          fadeOut_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float fade_out = 4 [default = 0.1];
         */
        public Builder clearFadeOut() {
          bitField0_ = (bitField0_ & ~0x00000008);
          fadeOut_ = 0.1F;
          onChanged();
          return this;
        }

        private float playbackRate_ = 1F;
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public boolean hasPlaybackRate() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public float getPlaybackRate() {
          return playbackRate_;
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public Builder setPlaybackRate(float value) {
          bitField0_ |= 0x00000010;
          playbackRate_ = value;
          onChanged();
          return this;
        }
        /**
         * optional float playback_rate = 5 [default = 1];
         */
        public Builder clearPlaybackRate() {
          bitField0_ = (bitField0_ & ~0x00000010);
          playbackRate_ = 1F;
          onChanged();
          return this;
        }

        private int sequenceVariant_ ;
        /**
         * optional int32 sequence_variant = 6;
         */
        public boolean hasSequenceVariant() {
          return ((bitField0_ & 0x00000020) == 0x00000020);
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public int getSequenceVariant() {
          return sequenceVariant_;
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public Builder setSequenceVariant(int value) {
          bitField0_ |= 0x00000020;
          sequenceVariant_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 sequence_variant = 6;
         */
        public Builder clearSequenceVariant() {
          bitField0_ = (bitField0_ & ~0x00000020);
          sequenceVariant_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.AddGesture)
      }

      static {
        defaultInstance = new AddGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.AddGesture)
    }

    public interface RemoveGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.RemoveGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
     */
    public static final class RemoveGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.RemoveGesture)
        RemoveGestureOrBuilder {
      // Use RemoveGesture.newBuilder() to construct.
      private RemoveGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private RemoveGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final RemoveGesture defaultInstance;
      public static RemoveGesture getDefaultInstance() {
        return defaultInstance;
      }

      public RemoveGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private RemoveGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public RemoveGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new RemoveGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.RemoveGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.RemoveGesture)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
      }

      static {
        defaultInstance = new RemoveGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.RemoveGesture)
    }

    public interface BloodImpactOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.BloodImpact)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 scale = 1;
       */
      boolean hasScale();
      /**
       * optional int32 scale = 1;
       */
      int getScale();

      /**
       * optional int32 x_normal = 2;
       */
      boolean hasXNormal();
      /**
       * optional int32 x_normal = 2;
       */
      int getXNormal();

      /**
       * optional int32 y_normal = 3;
       */
      boolean hasYNormal();
      /**
       * optional int32 y_normal = 3;
       */
      int getYNormal();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
     */
    public static final class BloodImpact extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.BloodImpact)
        BloodImpactOrBuilder {
      // Use BloodImpact.newBuilder() to construct.
      private BloodImpact(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private BloodImpact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final BloodImpact defaultInstance;
      public static BloodImpact getDefaultInstance() {
        return defaultInstance;
      }

      public BloodImpact getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private BloodImpact(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                scale_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                xNormal_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                yNormal_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public BloodImpact parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BloodImpact(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int SCALE_FIELD_NUMBER = 1;
      private int scale_;
      /**
       * optional int32 scale = 1;
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 scale = 1;
       */
      public int getScale() {
        return scale_;
      }

      public static final int X_NORMAL_FIELD_NUMBER = 2;
      private int xNormal_;
      /**
       * optional int32 x_normal = 2;
       */
      public boolean hasXNormal() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 x_normal = 2;
       */
      public int getXNormal() {
        return xNormal_;
      }

      public static final int Y_NORMAL_FIELD_NUMBER = 3;
      private int yNormal_;
      /**
       * optional int32 y_normal = 3;
       */
      public boolean hasYNormal() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 y_normal = 3;
       */
      public int getYNormal() {
        return yNormal_;
      }

      private void initFields() {
        scale_ = 0;
        xNormal_ = 0;
        yNormal_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, yNormal_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, scale_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, xNormal_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, yNormal_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.BloodImpact}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.BloodImpact)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          scale_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          xNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          yNormal_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.scale_ = scale_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.xNormal_ = xNormal_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.yNormal_ = yNormal_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) return this;
          if (other.hasScale()) {
            setScale(other.getScale());
          }
          if (other.hasXNormal()) {
            setXNormal(other.getXNormal());
          }
          if (other.hasYNormal()) {
            setYNormal(other.getYNormal());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int scale_ ;
        /**
         * optional int32 scale = 1;
         */
        public boolean hasScale() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 scale = 1;
         */
        public int getScale() {
          return scale_;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder setScale(int value) {
          bitField0_ |= 0x00000001;
          scale_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 scale = 1;
         */
        public Builder clearScale() {
          bitField0_ = (bitField0_ & ~0x00000001);
          scale_ = 0;
          onChanged();
          return this;
        }

        private int xNormal_ ;
        /**
         * optional int32 x_normal = 2;
         */
        public boolean hasXNormal() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 x_normal = 2;
         */
        public int getXNormal() {
          return xNormal_;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder setXNormal(int value) {
          bitField0_ |= 0x00000002;
          xNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 x_normal = 2;
         */
        public Builder clearXNormal() {
          bitField0_ = (bitField0_ & ~0x00000002);
          xNormal_ = 0;
          onChanged();
          return this;
        }

        private int yNormal_ ;
        /**
         * optional int32 y_normal = 3;
         */
        public boolean hasYNormal() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 y_normal = 3;
         */
        public int getYNormal() {
          return yNormal_;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder setYNormal(int value) {
          bitField0_ |= 0x00000004;
          yNormal_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 y_normal = 3;
         */
        public Builder clearYNormal() {
          bitField0_ = (bitField0_ & ~0x00000004);
          yNormal_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
      }

      static {
        defaultInstance = new BloodImpact(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.BloodImpact)
    }

    public interface FadeGestureOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UnitEvent.FadeGesture)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 activity = 1;
       */
      boolean hasActivity();
      /**
       * optional int32 activity = 1;
       */
      int getActivity();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
     */
    public static final class FadeGesture extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UnitEvent.FadeGesture)
        FadeGestureOrBuilder {
      // Use FadeGesture.newBuilder() to construct.
      private FadeGesture(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private FadeGesture(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final FadeGesture defaultInstance;
      public static FadeGesture getDefaultInstance() {
        return defaultInstance;
      }

      public FadeGesture getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private FadeGesture(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                activity_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public FadeGesture parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new FadeGesture(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int ACTIVITY_FIELD_NUMBER = 1;
      private int activity_;
      /**
       * optional int32 activity = 1;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 activity = 1;
       */
      public int getActivity() {
        return activity_;
      }

      private void initFields() {
        activity_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, activity_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, activity_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_UnitEvent.FadeGesture}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent.FadeGesture)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          activity_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.activity_ = activity_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) return this;
          if (other.hasActivity()) {
            setActivity(other.getActivity());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int activity_ ;
        /**
         * optional int32 activity = 1;
         */
        public boolean hasActivity() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 activity = 1;
         */
        public int getActivity() {
          return activity_;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder setActivity(int value) {
          bitField0_ |= 0x00000001;
          activity_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 activity = 1;
         */
        public Builder clearActivity() {
          bitField0_ = (bitField0_ & ~0x00000001);
          activity_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
      }

      static {
        defaultInstance = new FadeGesture(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent.FadeGesture)
    }

    private int bitField0_;
    public static final int MSG_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages msgType_;
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public boolean hasMsgType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages getMsgType() {
      return msgType_;
    }

    public static final int ENTITY_INDEX_FIELD_NUMBER = 2;
    private int entityIndex_;
    /**
     * required int32 entity_index = 2;
     */
    public boolean hasEntityIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 entity_index = 2;
     */
    public int getEntityIndex() {
      return entityIndex_;
    }

    public static final int SPEECH_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech speech_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public boolean hasSpeech() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
      return speech_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
      return speech_;
    }

    public static final int SPEECH_MUTE_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public boolean hasSpeechMute() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
      return speechMute_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
      return speechMute_;
    }

    public static final int ADD_GESTURE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public boolean hasAddGesture() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
      return addGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
      return addGesture_;
    }

    public static final int REMOVE_GESTURE_FIELD_NUMBER = 6;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public boolean hasRemoveGesture() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
      return removeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
      return removeGesture_;
    }

    public static final int BLOOD_IMPACT_FIELD_NUMBER = 7;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public boolean hasBloodImpact() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
      return bloodImpact_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
      return bloodImpact_;
    }

    public static final int FADE_GESTURE_FIELD_NUMBER = 8;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_;
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public boolean hasFadeGesture() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
      return fadeGesture_;
    }
    /**
     * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
      return fadeGesture_;
    }

    public static final int SPEECH_MATCH_ON_CLIENT_FIELD_NUMBER = 9;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient speechMatchOnClient_;
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public boolean hasSpeechMatchOnClient() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
      return speechMatchOnClient_;
    }
    /**
     * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
      return speechMatchOnClient_;
    }

    private void initFields() {
      msgType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      entityIndex_ = 0;
      speech_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      speechMute_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      addGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      removeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      bloodImpact_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      fadeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      speechMatchOnClient_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasMsgType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEntityIndex()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasSpeechMatchOnClient()) {
        if (!getSpeechMatchOnClient().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, speechMatchOnClient_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, msgType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, entityIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, speech_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, speechMute_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, addGesture_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, removeGesture_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, bloodImpact_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, fadeGesture_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, speechMatchOnClient_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UnitEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UnitEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSpeechFieldBuilder();
          getSpeechMuteFieldBuilder();
          getAddGestureFieldBuilder();
          getRemoveGestureFieldBuilder();
          getBloodImpactFieldBuilder();
          getFadeGestureFieldBuilder();
          getSpeechMatchOnClientFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        msgType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (speechBuilder_ == null) {
          speech_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (speechMuteBuilder_ == null) {
          speechMute_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (addGestureBuilder_ == null) {
          addGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (removeGestureBuilder_ == null) {
          removeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UnitEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.msgType_ = msgType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityIndex_ = entityIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (speechBuilder_ == null) {
          result.speech_ = speech_;
        } else {
          result.speech_ = speechBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (speechMuteBuilder_ == null) {
          result.speechMute_ = speechMute_;
        } else {
          result.speechMute_ = speechMuteBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (addGestureBuilder_ == null) {
          result.addGesture_ = addGesture_;
        } else {
          result.addGesture_ = addGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (removeGestureBuilder_ == null) {
          result.removeGesture_ = removeGesture_;
        } else {
          result.removeGesture_ = removeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (bloodImpactBuilder_ == null) {
          result.bloodImpact_ = bloodImpact_;
        } else {
          result.bloodImpact_ = bloodImpactBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (fadeGestureBuilder_ == null) {
          result.fadeGesture_ = fadeGesture_;
        } else {
          result.fadeGesture_ = fadeGestureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (speechMatchOnClientBuilder_ == null) {
          result.speechMatchOnClient_ = speechMatchOnClient_;
        } else {
          result.speechMatchOnClient_ = speechMatchOnClientBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.getDefaultInstance()) return this;
        if (other.hasMsgType()) {
          setMsgType(other.getMsgType());
        }
        if (other.hasEntityIndex()) {
          setEntityIndex(other.getEntityIndex());
        }
        if (other.hasSpeech()) {
          mergeSpeech(other.getSpeech());
        }
        if (other.hasSpeechMute()) {
          mergeSpeechMute(other.getSpeechMute());
        }
        if (other.hasAddGesture()) {
          mergeAddGesture(other.getAddGesture());
        }
        if (other.hasRemoveGesture()) {
          mergeRemoveGesture(other.getRemoveGesture());
        }
        if (other.hasBloodImpact()) {
          mergeBloodImpact(other.getBloodImpact());
        }
        if (other.hasFadeGesture()) {
          mergeFadeGesture(other.getFadeGesture());
        }
        if (other.hasSpeechMatchOnClient()) {
          mergeSpeechMatchOnClient(other.getSpeechMatchOnClient());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasMsgType()) {
          
          return false;
        }
        if (!hasEntityIndex()) {
          
          return false;
        }
        if (hasSpeechMatchOnClient()) {
          if (!getSpeechMatchOnClient().isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages msgType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public boolean hasMsgType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages getMsgType() {
        return msgType_;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder setMsgType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        msgType_ = value;
        onChanged();
        return this;
      }
      /**
       * required .EDotaEntityMessages msg_type = 1 [default = DOTA_UNIT_SPEECH];
       */
      public Builder clearMsgType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        msgType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EDotaEntityMessages.DOTA_UNIT_SPEECH;
        onChanged();
        return this;
      }

      private int entityIndex_ ;
      /**
       * required int32 entity_index = 2;
       */
      public boolean hasEntityIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 entity_index = 2;
       */
      public int getEntityIndex() {
        return entityIndex_;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder setEntityIndex(int value) {
        bitField0_ |= 0x00000002;
        entityIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 entity_index = 2;
       */
      public Builder clearEntityIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityIndex_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech speech_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> speechBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public boolean hasSpeech() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech getSpeech() {
        if (speechBuilder_ == null) {
          return speech_;
        } else {
          return speechBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speech_ = value;
          onChanged();
        } else {
          speechBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder setSpeech(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder builderForValue) {
        if (speechBuilder_ == null) {
          speech_ = builderForValue.build();
          onChanged();
        } else {
          speechBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder mergeSpeech(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech value) {
        if (speechBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              speech_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance()) {
            speech_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.newBuilder(speech_).mergeFrom(value).buildPartial();
          } else {
            speech_ = value;
          }
          onChanged();
        } else {
          speechBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public Builder clearSpeech() {
        if (speechBuilder_ == null) {
          speech_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.getDefaultInstance();
          onChanged();
        } else {
          speechBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder getSpeechBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSpeechFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder getSpeechOrBuilder() {
        if (speechBuilder_ != null) {
          return speechBuilder_.getMessageOrBuilder();
        } else {
          return speech_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.Speech speech = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder> 
          getSpeechFieldBuilder() {
        if (speechBuilder_ == null) {
          speechBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.Speech.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechOrBuilder>(
                  getSpeech(),
                  getParentForChildren(),
                  isClean());
          speech_ = null;
        }
        return speechBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute speechMute_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> speechMuteBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public boolean hasSpeechMute() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute getSpeechMute() {
        if (speechMuteBuilder_ == null) {
          return speechMute_;
        } else {
          return speechMuteBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMute_ = value;
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder setSpeechMute(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder builderForValue) {
        if (speechMuteBuilder_ == null) {
          speechMute_ = builderForValue.build();
          onChanged();
        } else {
          speechMuteBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder mergeSpeechMute(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute value) {
        if (speechMuteBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              speechMute_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance()) {
            speechMute_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.newBuilder(speechMute_).mergeFrom(value).buildPartial();
          } else {
            speechMute_ = value;
          }
          onChanged();
        } else {
          speechMuteBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public Builder clearSpeechMute() {
        if (speechMuteBuilder_ == null) {
          speechMute_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.getDefaultInstance();
          onChanged();
        } else {
          speechMuteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder getSpeechMuteBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSpeechMuteFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder getSpeechMuteOrBuilder() {
        if (speechMuteBuilder_ != null) {
          return speechMuteBuilder_.getMessageOrBuilder();
        } else {
          return speechMute_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.SpeechMute speech_mute = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder> 
          getSpeechMuteFieldBuilder() {
        if (speechMuteBuilder_ == null) {
          speechMuteBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMute.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.SpeechMuteOrBuilder>(
                  getSpeechMute(),
                  getParentForChildren(),
                  isClean());
          speechMute_ = null;
        }
        return speechMuteBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture addGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> addGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public boolean hasAddGesture() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture getAddGesture() {
        if (addGestureBuilder_ == null) {
          return addGesture_;
        } else {
          return addGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          addGesture_ = value;
          onChanged();
        } else {
          addGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder setAddGesture(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder builderForValue) {
        if (addGestureBuilder_ == null) {
          addGesture_ = builderForValue.build();
          onChanged();
        } else {
          addGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder mergeAddGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture value) {
        if (addGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              addGesture_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance()) {
            addGesture_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.newBuilder(addGesture_).mergeFrom(value).buildPartial();
          } else {
            addGesture_ = value;
          }
          onChanged();
        } else {
          addGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public Builder clearAddGesture() {
        if (addGestureBuilder_ == null) {
          addGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.getDefaultInstance();
          onChanged();
        } else {
          addGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder getAddGestureBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getAddGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder getAddGestureOrBuilder() {
        if (addGestureBuilder_ != null) {
          return addGestureBuilder_.getMessageOrBuilder();
        } else {
          return addGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.AddGesture add_gesture = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder> 
          getAddGestureFieldBuilder() {
        if (addGestureBuilder_ == null) {
          addGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.AddGestureOrBuilder>(
                  getAddGesture(),
                  getParentForChildren(),
                  isClean());
          addGesture_ = null;
        }
        return addGestureBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture removeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> removeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public boolean hasRemoveGesture() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture getRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          return removeGesture_;
        } else {
          return removeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          removeGesture_ = value;
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder setRemoveGesture(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder builderForValue) {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = builderForValue.build();
          onChanged();
        } else {
          removeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder mergeRemoveGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture value) {
        if (removeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              removeGesture_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance()) {
            removeGesture_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.newBuilder(removeGesture_).mergeFrom(value).buildPartial();
          } else {
            removeGesture_ = value;
          }
          onChanged();
        } else {
          removeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public Builder clearRemoveGesture() {
        if (removeGestureBuilder_ == null) {
          removeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.getDefaultInstance();
          onChanged();
        } else {
          removeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder getRemoveGestureBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getRemoveGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder getRemoveGestureOrBuilder() {
        if (removeGestureBuilder_ != null) {
          return removeGestureBuilder_.getMessageOrBuilder();
        } else {
          return removeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.RemoveGesture remove_gesture = 6;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder> 
          getRemoveGestureFieldBuilder() {
        if (removeGestureBuilder_ == null) {
          removeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.RemoveGestureOrBuilder>(
                  getRemoveGesture(),
                  getParentForChildren(),
                  isClean());
          removeGesture_ = null;
        }
        return removeGestureBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact bloodImpact_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> bloodImpactBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public boolean hasBloodImpact() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact getBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          return bloodImpact_;
        } else {
          return bloodImpactBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          bloodImpact_ = value;
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder setBloodImpact(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder builderForValue) {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = builderForValue.build();
          onChanged();
        } else {
          bloodImpactBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder mergeBloodImpact(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact value) {
        if (bloodImpactBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              bloodImpact_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance()) {
            bloodImpact_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.newBuilder(bloodImpact_).mergeFrom(value).buildPartial();
          } else {
            bloodImpact_ = value;
          }
          onChanged();
        } else {
          bloodImpactBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public Builder clearBloodImpact() {
        if (bloodImpactBuilder_ == null) {
          bloodImpact_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.getDefaultInstance();
          onChanged();
        } else {
          bloodImpactBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder getBloodImpactBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getBloodImpactFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder getBloodImpactOrBuilder() {
        if (bloodImpactBuilder_ != null) {
          return bloodImpactBuilder_.getMessageOrBuilder();
        } else {
          return bloodImpact_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.BloodImpact blood_impact = 7;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder> 
          getBloodImpactFieldBuilder() {
        if (bloodImpactBuilder_ == null) {
          bloodImpactBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpact.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.BloodImpactOrBuilder>(
                  getBloodImpact(),
                  getParentForChildren(),
                  isClean());
          bloodImpact_ = null;
        }
        return bloodImpactBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture fadeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> fadeGestureBuilder_;
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public boolean hasFadeGesture() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture getFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          return fadeGesture_;
        } else {
          return fadeGestureBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fadeGesture_ = value;
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder setFadeGesture(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder builderForValue) {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = builderForValue.build();
          onChanged();
        } else {
          fadeGestureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder mergeFadeGesture(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture value) {
        if (fadeGestureBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              fadeGesture_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance()) {
            fadeGesture_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.newBuilder(fadeGesture_).mergeFrom(value).buildPartial();
          } else {
            fadeGesture_ = value;
          }
          onChanged();
        } else {
          fadeGestureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public Builder clearFadeGesture() {
        if (fadeGestureBuilder_ == null) {
          fadeGesture_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.getDefaultInstance();
          onChanged();
        } else {
          fadeGestureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder getFadeGestureBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getFadeGestureFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder getFadeGestureOrBuilder() {
        if (fadeGestureBuilder_ != null) {
          return fadeGestureBuilder_.getMessageOrBuilder();
        } else {
          return fadeGesture_;
        }
      }
      /**
       * optional .CDOTAUserMsg_UnitEvent.FadeGesture fade_gesture = 8;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder> 
          getFadeGestureFieldBuilder() {
        if (fadeGestureBuilder_ == null) {
          fadeGestureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGesture.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UnitEvent.FadeGestureOrBuilder>(
                  getFadeGesture(),
                  getParentForChildren(),
                  isClean());
          fadeGesture_ = null;
        }
        return fadeGestureBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient speechMatchOnClient_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder> speechMatchOnClientBuilder_;
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public boolean hasSpeechMatchOnClient() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient getSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          return speechMatchOnClient_;
        } else {
          return speechMatchOnClientBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          speechMatchOnClient_ = value;
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder setSpeechMatchOnClient(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder builderForValue) {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = builderForValue.build();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder mergeSpeechMatchOnClient(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient value) {
        if (speechMatchOnClientBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100) &&
              speechMatchOnClient_ != skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance()) {
            speechMatchOnClient_ =
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.newBuilder(speechMatchOnClient_).mergeFrom(value).buildPartial();
          } else {
            speechMatchOnClient_ = value;
          }
          onChanged();
        } else {
          speechMatchOnClientBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public Builder clearSpeechMatchOnClient() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClient_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.getDefaultInstance();
          onChanged();
        } else {
          speechMatchOnClientBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder getSpeechMatchOnClientBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getSpeechMatchOnClientFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder getSpeechMatchOnClientOrBuilder() {
        if (speechMatchOnClientBuilder_ != null) {
          return speechMatchOnClientBuilder_.getMessageOrBuilder();
        } else {
          return speechMatchOnClient_;
        }
      }
      /**
       * optional .CDOTASpeechMatchOnClient speech_match_on_client = 9;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder> 
          getSpeechMatchOnClientFieldBuilder() {
        if (speechMatchOnClientBuilder_ == null) {
          speechMatchOnClientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClient.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTASpeechMatchOnClientOrBuilder>(
                  getSpeechMatchOnClient(),
                  getParentForChildren(),
                  isClean());
          speechMatchOnClient_ = null;
        }
        return speechMatchOnClientBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UnitEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UnitEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UnitEvent)
  }

  public interface CDOTAUserMsg_ItemPurchasedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemPurchased)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
   */
  public static final class CDOTAUserMsg_ItemPurchased extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemPurchased)
      CDOTAUserMsg_ItemPurchasedOrBuilder {
    // Use CDOTAUserMsg_ItemPurchased.newBuilder() to construct.
    private CDOTAUserMsg_ItemPurchased(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemPurchased(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemPurchased defaultInstance;
    public static CDOTAUserMsg_ItemPurchased getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemPurchased(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemPurchased parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemPurchased(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemPurchased}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemPurchased)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchasedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemPurchased) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemPurchased)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemPurchased(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemPurchased)
  }

  public interface CDOTAUserMsg_ItemSoldOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemSold)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 item_ability_id = 1;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 1;
     */
    int getItemAbilityId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemSold}
   */
  public static final class CDOTAUserMsg_ItemSold extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemSold)
      CDOTAUserMsg_ItemSoldOrBuilder {
    // Use CDOTAUserMsg_ItemSold.newBuilder() to construct.
    private CDOTAUserMsg_ItemSold(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemSold(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemSold defaultInstance;
    public static CDOTAUserMsg_ItemSold getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemSold getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemSold(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              itemAbilityId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemSold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemSold(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 1;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 1;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 item_ability_id = 1;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    private void initFields() {
      itemAbilityId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, itemAbilityId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, itemAbilityId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemSold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemSold)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSoldOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemSold_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.itemAbilityId_ = itemAbilityId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold.getDefaultInstance()) return this;
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemSold) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 1;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000001;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 1;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemSold)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemSold(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemSold)
  }

  public interface CDOTAUserMsg_ItemFoundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ItemFound)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player = 1;
     */
    boolean hasPlayer();
    /**
     * optional int32 player = 1;
     */
    int getPlayer();

    /**
     * optional int32 quality = 2;
     */
    boolean hasQuality();
    /**
     * optional int32 quality = 2;
     */
    int getQuality();

    /**
     * optional int32 rarity = 3;
     */
    boolean hasRarity();
    /**
     * optional int32 rarity = 3;
     */
    int getRarity();

    /**
     * optional int32 method = 4;
     */
    boolean hasMethod();
    /**
     * optional int32 method = 4;
     */
    int getMethod();

    /**
     * optional uint32 itemdef = 5;
     */
    boolean hasItemdef();
    /**
     * optional uint32 itemdef = 5;
     */
    int getItemdef();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ItemFound}
   */
  public static final class CDOTAUserMsg_ItemFound extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ItemFound)
      CDOTAUserMsg_ItemFoundOrBuilder {
    // Use CDOTAUserMsg_ItemFound.newBuilder() to construct.
    private CDOTAUserMsg_ItemFound(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ItemFound(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ItemFound defaultInstance;
    public static CDOTAUserMsg_ItemFound getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ItemFound getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ItemFound(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              player_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              quality_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              rarity_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              method_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              itemdef_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ItemFound parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ItemFound(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_FIELD_NUMBER = 1;
    private int player_;
    /**
     * optional int32 player = 1;
     */
    public boolean hasPlayer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player = 1;
     */
    public int getPlayer() {
      return player_;
    }

    public static final int QUALITY_FIELD_NUMBER = 2;
    private int quality_;
    /**
     * optional int32 quality = 2;
     */
    public boolean hasQuality() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 quality = 2;
     */
    public int getQuality() {
      return quality_;
    }

    public static final int RARITY_FIELD_NUMBER = 3;
    private int rarity_;
    /**
     * optional int32 rarity = 3;
     */
    public boolean hasRarity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 rarity = 3;
     */
    public int getRarity() {
      return rarity_;
    }

    public static final int METHOD_FIELD_NUMBER = 4;
    private int method_;
    /**
     * optional int32 method = 4;
     */
    public boolean hasMethod() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 method = 4;
     */
    public int getMethod() {
      return method_;
    }

    public static final int ITEMDEF_FIELD_NUMBER = 5;
    private int itemdef_;
    /**
     * optional uint32 itemdef = 5;
     */
    public boolean hasItemdef() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 itemdef = 5;
     */
    public int getItemdef() {
      return itemdef_;
    }

    private void initFields() {
      player_ = 0;
      quality_ = 0;
      rarity_ = 0;
      method_ = 0;
      itemdef_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, player_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, quality_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, rarity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, method_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, itemdef_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, player_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, quality_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, rarity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, method_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, itemdef_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ItemFound}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ItemFound)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFoundOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        player_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        quality_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        rarity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        method_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        itemdef_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ItemFound_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.player_ = player_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.quality_ = quality_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.rarity_ = rarity_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.method_ = method_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.itemdef_ = itemdef_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound.getDefaultInstance()) return this;
        if (other.hasPlayer()) {
          setPlayer(other.getPlayer());
        }
        if (other.hasQuality()) {
          setQuality(other.getQuality());
        }
        if (other.hasRarity()) {
          setRarity(other.getRarity());
        }
        if (other.hasMethod()) {
          setMethod(other.getMethod());
        }
        if (other.hasItemdef()) {
          setItemdef(other.getItemdef());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ItemFound) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int player_ ;
      /**
       * optional int32 player = 1;
       */
      public boolean hasPlayer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player = 1;
       */
      public int getPlayer() {
        return player_;
      }
      /**
       * optional int32 player = 1;
       */
      public Builder setPlayer(int value) {
        bitField0_ |= 0x00000001;
        player_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player = 1;
       */
      public Builder clearPlayer() {
        bitField0_ = (bitField0_ & ~0x00000001);
        player_ = 0;
        onChanged();
        return this;
      }

      private int quality_ ;
      /**
       * optional int32 quality = 2;
       */
      public boolean hasQuality() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 quality = 2;
       */
      public int getQuality() {
        return quality_;
      }
      /**
       * optional int32 quality = 2;
       */
      public Builder setQuality(int value) {
        bitField0_ |= 0x00000002;
        quality_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 quality = 2;
       */
      public Builder clearQuality() {
        bitField0_ = (bitField0_ & ~0x00000002);
        quality_ = 0;
        onChanged();
        return this;
      }

      private int rarity_ ;
      /**
       * optional int32 rarity = 3;
       */
      public boolean hasRarity() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 rarity = 3;
       */
      public int getRarity() {
        return rarity_;
      }
      /**
       * optional int32 rarity = 3;
       */
      public Builder setRarity(int value) {
        bitField0_ |= 0x00000004;
        rarity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 rarity = 3;
       */
      public Builder clearRarity() {
        bitField0_ = (bitField0_ & ~0x00000004);
        rarity_ = 0;
        onChanged();
        return this;
      }

      private int method_ ;
      /**
       * optional int32 method = 4;
       */
      public boolean hasMethod() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 method = 4;
       */
      public int getMethod() {
        return method_;
      }
      /**
       * optional int32 method = 4;
       */
      public Builder setMethod(int value) {
        bitField0_ |= 0x00000008;
        method_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 method = 4;
       */
      public Builder clearMethod() {
        bitField0_ = (bitField0_ & ~0x00000008);
        method_ = 0;
        onChanged();
        return this;
      }

      private int itemdef_ ;
      /**
       * optional uint32 itemdef = 5;
       */
      public boolean hasItemdef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 itemdef = 5;
       */
      public int getItemdef() {
        return itemdef_;
      }
      /**
       * optional uint32 itemdef = 5;
       */
      public Builder setItemdef(int value) {
        bitField0_ |= 0x00000010;
        itemdef_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 itemdef = 5;
       */
      public Builder clearItemdef() {
        bitField0_ = (bitField0_ & ~0x00000010);
        itemdef_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ItemFound)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ItemFound(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ItemFound)
  }

  public interface CDOTAUserMsg_OverheadEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OverheadEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    boolean hasMessageType();
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT getMessageType();

    /**
     * optional int32 value = 2;
     */
    boolean hasValue();
    /**
     * optional int32 value = 2;
     */
    int getValue();

    /**
     * optional int32 target_player_entindex = 3;
     */
    boolean hasTargetPlayerEntindex();
    /**
     * optional int32 target_player_entindex = 3;
     */
    int getTargetPlayerEntindex();

    /**
     * optional int32 target_entindex = 4;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 4;
     */
    int getTargetEntindex();

    /**
     * optional int32 source_player_entindex = 5;
     */
    boolean hasSourcePlayerEntindex();
    /**
     * optional int32 source_player_entindex = 5;
     */
    int getSourcePlayerEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
   */
  public static final class CDOTAUserMsg_OverheadEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OverheadEvent)
      CDOTAUserMsg_OverheadEventOrBuilder {
    // Use CDOTAUserMsg_OverheadEvent.newBuilder() to construct.
    private CDOTAUserMsg_OverheadEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OverheadEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OverheadEvent defaultInstance;
    public static CDOTAUserMsg_OverheadEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OverheadEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                messageType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetPlayerEntindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              sourcePlayerEntindex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OverheadEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OverheadEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int MESSAGE_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT messageType_;
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public boolean hasMessageType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT getMessageType() {
      return messageType_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional int32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int TARGET_PLAYER_ENTINDEX_FIELD_NUMBER = 3;
    private int targetPlayerEntindex_;
    /**
     * optional int32 target_player_entindex = 3;
     */
    public boolean hasTargetPlayerEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_player_entindex = 3;
     */
    public int getTargetPlayerEntindex() {
      return targetPlayerEntindex_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 4;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 4;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 target_entindex = 4;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int SOURCE_PLAYER_ENTINDEX_FIELD_NUMBER = 5;
    private int sourcePlayerEntindex_;
    /**
     * optional int32 source_player_entindex = 5;
     */
    public boolean hasSourcePlayerEntindex() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 source_player_entindex = 5;
     */
    public int getSourcePlayerEntindex() {
      return sourcePlayerEntindex_;
    }

    private void initFields() {
      messageType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      value_ = 0;
      targetPlayerEntindex_ = 0;
      targetEntindex_ = 0;
      sourcePlayerEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, sourcePlayerEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, messageType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetPlayerEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, targetEntindex_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, sourcePlayerEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OverheadEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OverheadEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        messageType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        sourcePlayerEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.messageType_ = messageType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetPlayerEntindex_ = targetPlayerEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.sourcePlayerEntindex_ = sourcePlayerEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent.getDefaultInstance()) return this;
        if (other.hasMessageType()) {
          setMessageType(other.getMessageType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasTargetPlayerEntindex()) {
          setTargetPlayerEntindex(other.getTargetPlayerEntindex());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasSourcePlayerEntindex()) {
          setSourcePlayerEntindex(other.getSourcePlayerEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OverheadEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT messageType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public boolean hasMessageType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT getMessageType() {
        return messageType_;
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder setMessageType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        messageType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_OVERHEAD_ALERT message_type = 1 [default = OVERHEAD_ALERT_GOLD];
       */
      public Builder clearMessageType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        messageType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_OVERHEAD_ALERT.OVERHEAD_ALERT_GOLD;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional int32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerEntindex_ ;
      /**
       * optional int32 target_player_entindex = 3;
       */
      public boolean hasTargetPlayerEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public int getTargetPlayerEntindex() {
        return targetPlayerEntindex_;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder setTargetPlayerEntindex(int value) {
        bitField0_ |= 0x00000004;
        targetPlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_entindex = 3;
       */
      public Builder clearTargetPlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetPlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 4;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000008;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 4;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int sourcePlayerEntindex_ ;
      /**
       * optional int32 source_player_entindex = 5;
       */
      public boolean hasSourcePlayerEntindex() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public int getSourcePlayerEntindex() {
        return sourcePlayerEntindex_;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder setSourcePlayerEntindex(int value) {
        bitField0_ |= 0x00000010;
        sourcePlayerEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_entindex = 5;
       */
      public Builder clearSourcePlayerEntindex() {
        bitField0_ = (bitField0_ & ~0x00000010);
        sourcePlayerEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OverheadEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OverheadEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OverheadEvent)
  }

  public interface CDOTAUserMsg_WorldLineOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WorldLine)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    boolean hasWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine getWorldline();
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WorldLine}
   */
  public static final class CDOTAUserMsg_WorldLine extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WorldLine)
      CDOTAUserMsg_WorldLineOrBuilder {
    // Use CDOTAUserMsg_WorldLine.newBuilder() to construct.
    private CDOTAUserMsg_WorldLine(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WorldLine(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WorldLine defaultInstance;
    public static CDOTAUserMsg_WorldLine getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WorldLine(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = worldline_.toBuilder();
              }
              worldline_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(worldline_);
                worldline_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WorldLine parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WorldLine(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int WORLDLINE_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine worldline_;
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public boolean hasWorldline() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine getWorldline() {
      return worldline_;
    }
    /**
     * optional .CDOTAMsg_WorldLine worldline = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
      return worldline_;
    }

    private void initFields() {
      playerId_ = 0;
      worldline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, worldline_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, worldline_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WorldLine}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WorldLine)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLineOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getWorldlineFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (worldlineBuilder_ == null) {
          worldline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WorldLine_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (worldlineBuilder_ == null) {
          result.worldline_ = worldline_;
        } else {
          result.worldline_ = worldlineBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasWorldline()) {
          mergeWorldline(other.getWorldline());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WorldLine) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine worldline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder> worldlineBuilder_;
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public boolean hasWorldline() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine getWorldline() {
        if (worldlineBuilder_ == null) {
          return worldline_;
        } else {
          return worldlineBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          worldline_ = value;
          onChanged();
        } else {
          worldlineBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder setWorldline(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder builderForValue) {
        if (worldlineBuilder_ == null) {
          worldline_ = builderForValue.build();
          onChanged();
        } else {
          worldlineBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder mergeWorldline(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine value) {
        if (worldlineBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              worldline_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.getDefaultInstance()) {
            worldline_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.newBuilder(worldline_).mergeFrom(value).buildPartial();
          } else {
            worldline_ = value;
          }
          onChanged();
        } else {
          worldlineBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public Builder clearWorldline() {
        if (worldlineBuilder_ == null) {
          worldline_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.getDefaultInstance();
          onChanged();
        } else {
          worldlineBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder getWorldlineBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getWorldlineFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder getWorldlineOrBuilder() {
        if (worldlineBuilder_ != null) {
          return worldlineBuilder_.getMessageOrBuilder();
        } else {
          return worldline_;
        }
      }
      /**
       * optional .CDOTAMsg_WorldLine worldline = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder> 
          getWorldlineFieldBuilder() {
        if (worldlineBuilder_ == null) {
          worldlineBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLine.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_WorldLineOrBuilder>(
                  getWorldline(),
                  getParentForChildren(),
                  isClean());
          worldline_ = null;
        }
        return worldlineBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WorldLine)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WorldLine(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WorldLine)
  }

  public interface CDOTAUserMsg_ChatWheelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatWheel)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 chat_message_id = 1;
     */
    boolean hasChatMessageId();
    /**
     * optional uint32 chat_message_id = 1;
     */
    int getChatMessageId();

    /**
     * optional int32 player_id = 2;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 2;
     */
    int getPlayerId();

    /**
     * optional uint32 account_id = 3;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 3;
     */
    int getAccountId();

    /**
     * optional int32 param_hero_id = 4;
     */
    boolean hasParamHeroId();
    /**
     * optional int32 param_hero_id = 4;
     */
    int getParamHeroId();

    /**
     * optional uint32 emoticon_id = 5;
     */
    boolean hasEmoticonId();
    /**
     * optional uint32 emoticon_id = 5;
     */
    int getEmoticonId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatWheel}
   */
  public static final class CDOTAUserMsg_ChatWheel extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatWheel)
      CDOTAUserMsg_ChatWheelOrBuilder {
    // Use CDOTAUserMsg_ChatWheel.newBuilder() to construct.
    private CDOTAUserMsg_ChatWheel(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatWheel(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatWheel defaultInstance;
    public static CDOTAUserMsg_ChatWheel getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatWheel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              chatMessageId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              accountId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              paramHeroId_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              emoticonId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatWheel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatWheel(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CHAT_MESSAGE_ID_FIELD_NUMBER = 1;
    private int chatMessageId_;
    /**
     * optional uint32 chat_message_id = 1;
     */
    public boolean hasChatMessageId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 chat_message_id = 1;
     */
    public int getChatMessageId() {
      return chatMessageId_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private int playerId_;
    /**
     * optional int32 player_id = 2;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id = 2;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ACCOUNT_ID_FIELD_NUMBER = 3;
    private int accountId_;
    /**
     * optional uint32 account_id = 3;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 account_id = 3;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int PARAM_HERO_ID_FIELD_NUMBER = 4;
    private int paramHeroId_;
    /**
     * optional int32 param_hero_id = 4;
     */
    public boolean hasParamHeroId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 param_hero_id = 4;
     */
    public int getParamHeroId() {
      return paramHeroId_;
    }

    public static final int EMOTICON_ID_FIELD_NUMBER = 5;
    private int emoticonId_;
    /**
     * optional uint32 emoticon_id = 5;
     */
    public boolean hasEmoticonId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 emoticon_id = 5;
     */
    public int getEmoticonId() {
      return emoticonId_;
    }

    private void initFields() {
      chatMessageId_ = 0;
      playerId_ = 0;
      accountId_ = 0;
      paramHeroId_ = 0;
      emoticonId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, chatMessageId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, paramHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, emoticonId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, chatMessageId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, accountId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, paramHeroId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, emoticonId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatWheel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatWheel)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        chatMessageId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        paramHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        emoticonId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatWheel_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chatMessageId_ = chatMessageId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.accountId_ = accountId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.paramHeroId_ = paramHeroId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.emoticonId_ = emoticonId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel.getDefaultInstance()) return this;
        if (other.hasChatMessageId()) {
          setChatMessageId(other.getChatMessageId());
        }
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (other.hasParamHeroId()) {
          setParamHeroId(other.getParamHeroId());
        }
        if (other.hasEmoticonId()) {
          setEmoticonId(other.getEmoticonId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatWheel) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int chatMessageId_ ;
      /**
       * optional uint32 chat_message_id = 1;
       */
      public boolean hasChatMessageId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public int getChatMessageId() {
        return chatMessageId_;
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public Builder setChatMessageId(int value) {
        bitField0_ |= 0x00000001;
        chatMessageId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 chat_message_id = 1;
       */
      public Builder clearChatMessageId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chatMessageId_ = 0;
        onChanged();
        return this;
      }

      private int playerId_ ;
      /**
       * optional int32 player_id = 2;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id = 2;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000002;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 2;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int accountId_ ;
      /**
       * optional uint32 account_id = 3;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 account_id = 3;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000004;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 3;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private int paramHeroId_ ;
      /**
       * optional int32 param_hero_id = 4;
       */
      public boolean hasParamHeroId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 param_hero_id = 4;
       */
      public int getParamHeroId() {
        return paramHeroId_;
      }
      /**
       * optional int32 param_hero_id = 4;
       */
      public Builder setParamHeroId(int value) {
        bitField0_ |= 0x00000008;
        paramHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 param_hero_id = 4;
       */
      public Builder clearParamHeroId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        paramHeroId_ = 0;
        onChanged();
        return this;
      }

      private int emoticonId_ ;
      /**
       * optional uint32 emoticon_id = 5;
       */
      public boolean hasEmoticonId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public int getEmoticonId() {
        return emoticonId_;
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public Builder setEmoticonId(int value) {
        bitField0_ |= 0x00000010;
        emoticonId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 emoticon_id = 5;
       */
      public Builder clearEmoticonId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        emoticonId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatWheel)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatWheel(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatWheel)
  }

  public interface CDOTAUserMsg_GamerulesStateChangedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GamerulesStateChanged)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 state = 1;
     */
    boolean hasState();
    /**
     * optional uint32 state = 1;
     */
    int getState();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GamerulesStateChanged}
   */
  public static final class CDOTAUserMsg_GamerulesStateChanged extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GamerulesStateChanged)
      CDOTAUserMsg_GamerulesStateChangedOrBuilder {
    // Use CDOTAUserMsg_GamerulesStateChanged.newBuilder() to construct.
    private CDOTAUserMsg_GamerulesStateChanged(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GamerulesStateChanged(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GamerulesStateChanged defaultInstance;
    public static CDOTAUserMsg_GamerulesStateChanged getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GamerulesStateChanged getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GamerulesStateChanged(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              state_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GamerulesStateChanged parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GamerulesStateChanged(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STATE_FIELD_NUMBER = 1;
    private int state_;
    /**
     * optional uint32 state = 1;
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 state = 1;
     */
    public int getState() {
      return state_;
    }

    private void initFields() {
      state_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, state_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, state_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GamerulesStateChanged}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GamerulesStateChanged)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChangedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        state_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.state_ = state_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged.getDefaultInstance()) return this;
        if (other.hasState()) {
          setState(other.getState());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GamerulesStateChanged) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int state_ ;
      /**
       * optional uint32 state = 1;
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 state = 1;
       */
      public int getState() {
        return state_;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder setState(int value) {
        bitField0_ |= 0x00000001;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 state = 1;
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GamerulesStateChanged)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GamerulesStateChanged(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GamerulesStateChanged)
  }

  public interface CDOTAUserMsg_SendStatPopupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendStatPopup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    boolean hasStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup getStatpopup();
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
   */
  public static final class CDOTAUserMsg_SendStatPopup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendStatPopup)
      CDOTAUserMsg_SendStatPopupOrBuilder {
    // Use CDOTAUserMsg_SendStatPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendStatPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendStatPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendStatPopup defaultInstance;
    public static CDOTAUserMsg_SendStatPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendStatPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = statpopup_.toBuilder();
              }
              statpopup_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(statpopup_);
                statpopup_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendStatPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendStatPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int STATPOPUP_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup statpopup_;
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public boolean hasStatpopup() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup getStatpopup() {
      return statpopup_;
    }
    /**
     * optional .CDOTAMsg_SendStatPopup statpopup = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
      return statpopup_;
    }

    private void initFields() {
      playerId_ = 0;
      statpopup_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, statpopup_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, statpopup_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendStatPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendStatPopup)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getStatpopupFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (statpopupBuilder_ == null) {
          statpopup_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (statpopupBuilder_ == null) {
          result.statpopup_ = statpopup_;
        } else {
          result.statpopup_ = statpopupBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasStatpopup()) {
          mergeStatpopup(other.getStatpopup());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendStatPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup statpopup_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder> statpopupBuilder_;
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public boolean hasStatpopup() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup getStatpopup() {
        if (statpopupBuilder_ == null) {
          return statpopup_;
        } else {
          return statpopupBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          statpopup_ = value;
          onChanged();
        } else {
          statpopupBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder setStatpopup(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder builderForValue) {
        if (statpopupBuilder_ == null) {
          statpopup_ = builderForValue.build();
          onChanged();
        } else {
          statpopupBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder mergeStatpopup(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup value) {
        if (statpopupBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              statpopup_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance()) {
            statpopup_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.newBuilder(statpopup_).mergeFrom(value).buildPartial();
          } else {
            statpopup_ = value;
          }
          onChanged();
        } else {
          statpopupBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public Builder clearStatpopup() {
        if (statpopupBuilder_ == null) {
          statpopup_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.getDefaultInstance();
          onChanged();
        } else {
          statpopupBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder getStatpopupBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStatpopupFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder getStatpopupOrBuilder() {
        if (statpopupBuilder_ != null) {
          return statpopupBuilder_.getMessageOrBuilder();
        } else {
          return statpopup_;
        }
      }
      /**
       * optional .CDOTAMsg_SendStatPopup statpopup = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder> 
          getStatpopupFieldBuilder() {
        if (statpopupBuilder_ == null) {
          statpopupBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopup.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_SendStatPopupOrBuilder>(
                  getStatpopup(),
                  getParentForChildren(),
                  isClean());
          statpopup_ = null;
        }
        return statpopupBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendStatPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendStatPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendStatPopup)
  }

  public interface CDOTAUserMsg_DismissAllStatPopupsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DismissAllStatPopups)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    boolean hasDismissallmsg();
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg();
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DismissAllStatPopups}
   */
  public static final class CDOTAUserMsg_DismissAllStatPopups extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DismissAllStatPopups)
      CDOTAUserMsg_DismissAllStatPopupsOrBuilder {
    // Use CDOTAUserMsg_DismissAllStatPopups.newBuilder() to construct.
    private CDOTAUserMsg_DismissAllStatPopups(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DismissAllStatPopups(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DismissAllStatPopups defaultInstance;
    public static CDOTAUserMsg_DismissAllStatPopups getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DismissAllStatPopups getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DismissAllStatPopups(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = dismissallmsg_.toBuilder();
              }
              dismissallmsg_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dismissallmsg_);
                dismissallmsg_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DismissAllStatPopups parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DismissAllStatPopups(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DISMISSALLMSG_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups dismissallmsg_;
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public boolean hasDismissallmsg() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg() {
      return dismissallmsg_;
    }
    /**
     * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder() {
      return dismissallmsg_;
    }

    private void initFields() {
      dismissallmsg_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, dismissallmsg_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dismissallmsg_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DismissAllStatPopups}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DismissAllStatPopups)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopupsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDismissallmsgFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
        } else {
          dismissallmsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (dismissallmsgBuilder_ == null) {
          result.dismissallmsg_ = dismissallmsg_;
        } else {
          result.dismissallmsg_ = dismissallmsgBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups.getDefaultInstance()) return this;
        if (other.hasDismissallmsg()) {
          mergeDismissallmsg(other.getDismissallmsg());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DismissAllStatPopups) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups dismissallmsg_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder> dismissallmsgBuilder_;
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public boolean hasDismissallmsg() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups getDismissallmsg() {
        if (dismissallmsgBuilder_ == null) {
          return dismissallmsg_;
        } else {
          return dismissallmsgBuilder_.getMessage();
        }
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder setDismissallmsg(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups value) {
        if (dismissallmsgBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dismissallmsg_ = value;
          onChanged();
        } else {
          dismissallmsgBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder setDismissallmsg(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder builderForValue) {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = builderForValue.build();
          onChanged();
        } else {
          dismissallmsgBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder mergeDismissallmsg(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups value) {
        if (dismissallmsgBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              dismissallmsg_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance()) {
            dismissallmsg_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.newBuilder(dismissallmsg_).mergeFrom(value).buildPartial();
          } else {
            dismissallmsg_ = value;
          }
          onChanged();
        } else {
          dismissallmsgBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public Builder clearDismissallmsg() {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsg_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.getDefaultInstance();
          onChanged();
        } else {
          dismissallmsgBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder getDismissallmsgBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDismissallmsgFieldBuilder().getBuilder();
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder getDismissallmsgOrBuilder() {
        if (dismissallmsgBuilder_ != null) {
          return dismissallmsgBuilder_.getMessageOrBuilder();
        } else {
          return dismissallmsg_;
        }
      }
      /**
       * optional .CDOTAMsg_DismissAllStatPopups dismissallmsg = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder> 
          getDismissallmsgFieldBuilder() {
        if (dismissallmsgBuilder_ == null) {
          dismissallmsgBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopups.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.CDOTAMsg_DismissAllStatPopupsOrBuilder>(
                  getDismissallmsg(),
                  getParentForChildren(),
                  isClean());
          dismissallmsg_ = null;
        }
        return dismissallmsgBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DismissAllStatPopups)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DismissAllStatPopups(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DismissAllStatPopups)
  }

  public interface CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendRoshanSpectatorPhase)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    boolean hasPhase();
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE getPhase();

    /**
     * optional int32 phase_start_time = 2;
     */
    boolean hasPhaseStartTime();
    /**
     * optional int32 phase_start_time = 2;
     */
    int getPhaseStartTime();

    /**
     * optional int32 phase_length = 3;
     */
    boolean hasPhaseLength();
    /**
     * optional int32 phase_length = 3;
     */
    int getPhaseLength();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendRoshanSpectatorPhase}
   */
  public static final class CDOTAUserMsg_SendRoshanSpectatorPhase extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendRoshanSpectatorPhase)
      CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder {
    // Use CDOTAUserMsg_SendRoshanSpectatorPhase.newBuilder() to construct.
    private CDOTAUserMsg_SendRoshanSpectatorPhase(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendRoshanSpectatorPhase(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendRoshanSpectatorPhase defaultInstance;
    public static CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendRoshanSpectatorPhase(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                phase_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              phaseStartTime_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              phaseLength_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendRoshanSpectatorPhase parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendRoshanSpectatorPhase(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE phase_;
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE getPhase() {
      return phase_;
    }

    public static final int PHASE_START_TIME_FIELD_NUMBER = 2;
    private int phaseStartTime_;
    /**
     * optional int32 phase_start_time = 2;
     */
    public boolean hasPhaseStartTime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 phase_start_time = 2;
     */
    public int getPhaseStartTime() {
      return phaseStartTime_;
    }

    public static final int PHASE_LENGTH_FIELD_NUMBER = 3;
    private int phaseLength_;
    /**
     * optional int32 phase_length = 3;
     */
    public boolean hasPhaseLength() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 phase_length = 3;
     */
    public int getPhaseLength() {
      return phaseLength_;
    }

    private void initFields() {
      phase_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
      phaseStartTime_ = 0;
      phaseLength_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, phaseStartTime_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, phaseLength_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, phase_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, phaseStartTime_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, phaseLength_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendRoshanSpectatorPhase}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendRoshanSpectatorPhase)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhaseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        phase_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
        bitField0_ = (bitField0_ & ~0x00000001);
        phaseStartTime_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        phaseLength_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.phaseStartTime_ = phaseStartTime_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.phaseLength_ = phaseLength_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase.getDefaultInstance()) return this;
        if (other.hasPhase()) {
          setPhase(other.getPhase());
        }
        if (other.hasPhaseStartTime()) {
          setPhaseStartTime(other.getPhaseStartTime());
        }
        if (other.hasPhaseLength()) {
          setPhaseLength(other.getPhaseLength());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanSpectatorPhase) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE phase_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE getPhase() {
        return phase_;
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public Builder setPhase(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_ROSHAN_PHASE phase = 1 [default = k_SRSP_ROSHAN_ALIVE];
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ROSHAN_PHASE.k_SRSP_ROSHAN_ALIVE;
        onChanged();
        return this;
      }

      private int phaseStartTime_ ;
      /**
       * optional int32 phase_start_time = 2;
       */
      public boolean hasPhaseStartTime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public int getPhaseStartTime() {
        return phaseStartTime_;
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public Builder setPhaseStartTime(int value) {
        bitField0_ |= 0x00000002;
        phaseStartTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 phase_start_time = 2;
       */
      public Builder clearPhaseStartTime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        phaseStartTime_ = 0;
        onChanged();
        return this;
      }

      private int phaseLength_ ;
      /**
       * optional int32 phase_length = 3;
       */
      public boolean hasPhaseLength() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 phase_length = 3;
       */
      public int getPhaseLength() {
        return phaseLength_;
      }
      /**
       * optional int32 phase_length = 3;
       */
      public Builder setPhaseLength(int value) {
        bitField0_ |= 0x00000004;
        phaseLength_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 phase_length = 3;
       */
      public Builder clearPhaseLength() {
        bitField0_ = (bitField0_ & ~0x00000004);
        phaseLength_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendRoshanSpectatorPhase)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendRoshanSpectatorPhase(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendRoshanSpectatorPhase)
  }

  public interface CDOTAUserMsg_SendRoshanPopupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SendRoshanPopup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bool reclaimed = 1;
     */
    boolean hasReclaimed();
    /**
     * optional bool reclaimed = 1;
     */
    boolean getReclaimed();

    /**
     * optional int32 gametime = 2;
     */
    boolean hasGametime();
    /**
     * optional int32 gametime = 2;
     */
    int getGametime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
   */
  public static final class CDOTAUserMsg_SendRoshanPopup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SendRoshanPopup)
      CDOTAUserMsg_SendRoshanPopupOrBuilder {
    // Use CDOTAUserMsg_SendRoshanPopup.newBuilder() to construct.
    private CDOTAUserMsg_SendRoshanPopup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SendRoshanPopup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SendRoshanPopup defaultInstance;
    public static CDOTAUserMsg_SendRoshanPopup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SendRoshanPopup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              reclaimed_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              gametime_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SendRoshanPopup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SendRoshanPopup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int RECLAIMED_FIELD_NUMBER = 1;
    private boolean reclaimed_;
    /**
     * optional bool reclaimed = 1;
     */
    public boolean hasReclaimed() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool reclaimed = 1;
     */
    public boolean getReclaimed() {
      return reclaimed_;
    }

    public static final int GAMETIME_FIELD_NUMBER = 2;
    private int gametime_;
    /**
     * optional int32 gametime = 2;
     */
    public boolean hasGametime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 gametime = 2;
     */
    public int getGametime() {
      return gametime_;
    }

    private void initFields() {
      reclaimed_ = false;
      gametime_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, gametime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, reclaimed_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, gametime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SendRoshanPopup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SendRoshanPopup)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        reclaimed_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        gametime_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reclaimed_ = reclaimed_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.gametime_ = gametime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup.getDefaultInstance()) return this;
        if (other.hasReclaimed()) {
          setReclaimed(other.getReclaimed());
        }
        if (other.hasGametime()) {
          setGametime(other.getGametime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SendRoshanPopup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean reclaimed_ ;
      /**
       * optional bool reclaimed = 1;
       */
      public boolean hasReclaimed() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool reclaimed = 1;
       */
      public boolean getReclaimed() {
        return reclaimed_;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder setReclaimed(boolean value) {
        bitField0_ |= 0x00000001;
        reclaimed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool reclaimed = 1;
       */
      public Builder clearReclaimed() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reclaimed_ = false;
        onChanged();
        return this;
      }

      private int gametime_ ;
      /**
       * optional int32 gametime = 2;
       */
      public boolean hasGametime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 gametime = 2;
       */
      public int getGametime() {
        return gametime_;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder setGametime(int value) {
        bitField0_ |= 0x00000002;
        gametime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 gametime = 2;
       */
      public Builder clearGametime() {
        bitField0_ = (bitField0_ & ~0x00000002);
        gametime_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SendRoshanPopup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SendRoshanPopup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SendRoshanPopup)
  }

  public interface CDOTAUserMsg_TE_ProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_Projectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 source = 1;
     */
    boolean hasSource();
    /**
     * optional uint32 source = 1;
     */
    int getSource();

    /**
     * optional uint32 target = 2;
     */
    boolean hasTarget();
    /**
     * optional uint32 target = 2;
     */
    int getTarget();

    /**
     * optional int32 move_speed = 3;
     */
    boolean hasMoveSpeed();
    /**
     * optional int32 move_speed = 3;
     */
    int getMoveSpeed();

    /**
     * optional int32 source_attachment = 4;
     */
    boolean hasSourceAttachment();
    /**
     * optional int32 source_attachment = 4;
     */
    int getSourceAttachment();

    /**
     * optional int64 particle_system_handle = 5;
     */
    boolean hasParticleSystemHandle();
    /**
     * optional int64 particle_system_handle = 5;
     */
    long getParticleSystemHandle();

    /**
     * optional bool dodgeable = 6;
     */
    boolean hasDodgeable();
    /**
     * optional bool dodgeable = 6;
     */
    boolean getDodgeable();

    /**
     * optional bool is_attack = 7;
     */
    boolean hasIsAttack();
    /**
     * optional bool is_attack = 7;
     */
    boolean getIsAttack();

    /**
     * optional float expire_time = 9;
     */
    boolean hasExpireTime();
    /**
     * optional float expire_time = 9;
     */
    float getExpireTime();

    /**
     * optional float maximpacttime = 10;
     */
    boolean hasMaximpacttime();
    /**
     * optional float maximpacttime = 10;
     */
    float getMaximpacttime();

    /**
     * optional fixed32 colorgemcolor = 11;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    int getColorgemcolor();

    /**
     * optional int32 launch_tick = 12;
     */
    boolean hasLaunchTick();
    /**
     * optional int32 launch_tick = 12;
     */
    int getLaunchTick();

    /**
     * optional int32 handle = 13;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 13;
     */
    int getHandle();

    /**
     * optional .CMsgVector target_loc = 14;
     */
    boolean hasTargetLoc();
    /**
     * optional .CMsgVector target_loc = 14;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc();
    /**
     * optional .CMsgVector target_loc = 14;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder();

    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    java.util.List 
        getParticleCpDataList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index);
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    int getParticleCpDataCount();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    java.util.List 
        getParticleCpDataOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index);

    /**
     * optional int64 additional_particle_system_handle = 16;
     */
    boolean hasAdditionalParticleSystemHandle();
    /**
     * optional int64 additional_particle_system_handle = 16;
     */
    long getAdditionalParticleSystemHandle();

    /**
     * optional int32 original_move_speed = 17;
     */
    boolean hasOriginalMoveSpeed();
    /**
     * optional int32 original_move_speed = 17;
     */
    int getOriginalMoveSpeed();

    /**
     * optional uint32 ability = 18 [default = 16777215];
     */
    boolean hasAbility();
    /**
     * optional uint32 ability = 18 [default = 16777215];
     */
    int getAbility();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_Projectile}
   */
  public static final class CDOTAUserMsg_TE_Projectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_Projectile)
      CDOTAUserMsg_TE_ProjectileOrBuilder {
    // Use CDOTAUserMsg_TE_Projectile.newBuilder() to construct.
    private CDOTAUserMsg_TE_Projectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_Projectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_Projectile defaultInstance;
    public static CDOTAUserMsg_TE_Projectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_Projectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_Projectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              source_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              target_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moveSpeed_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              sourceAttachment_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              particleSystemHandle_ = input.readInt64();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              dodgeable_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              isAttack_ = input.readBool();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000080;
              expireTime_ = input.readFloat();
              break;
            }
            case 85: {
              bitField0_ |= 0x00000100;
              maximpacttime_ = input.readFloat();
              break;
            }
            case 93: {
              bitField0_ |= 0x00000200;
              colorgemcolor_ = input.readFixed32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000400;
              launchTick_ = input.readInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00000800;
              handle_ = input.readInt32();
              break;
            }
            case 114: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00001000) == 0x00001000)) {
                subBuilder = targetLoc_.toBuilder();
              }
              targetLoc_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(targetLoc_);
                targetLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00001000;
              break;
            }
            case 122: {
              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
                particleCpData_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00002000;
              }
              particleCpData_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.PARSER, extensionRegistry));
              break;
            }
            case 128: {
              bitField0_ |= 0x00002000;
              additionalParticleSystemHandle_ = input.readInt64();
              break;
            }
            case 136: {
              bitField0_ |= 0x00004000;
              originalMoveSpeed_ = input.readInt32();
              break;
            }
            case 144: {
              bitField0_ |= 0x00008000;
              ability_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
          particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_Projectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_Projectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_FIELD_NUMBER = 1;
    private int source_;
    /**
     * optional uint32 source = 1;
     */
    public boolean hasSource() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 source = 1;
     */
    public int getSource() {
      return source_;
    }

    public static final int TARGET_FIELD_NUMBER = 2;
    private int target_;
    /**
     * optional uint32 target = 2;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target = 2;
     */
    public int getTarget() {
      return target_;
    }

    public static final int MOVE_SPEED_FIELD_NUMBER = 3;
    private int moveSpeed_;
    /**
     * optional int32 move_speed = 3;
     */
    public boolean hasMoveSpeed() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 move_speed = 3;
     */
    public int getMoveSpeed() {
      return moveSpeed_;
    }

    public static final int SOURCE_ATTACHMENT_FIELD_NUMBER = 4;
    private int sourceAttachment_;
    /**
     * optional int32 source_attachment = 4;
     */
    public boolean hasSourceAttachment() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 source_attachment = 4;
     */
    public int getSourceAttachment() {
      return sourceAttachment_;
    }

    public static final int PARTICLE_SYSTEM_HANDLE_FIELD_NUMBER = 5;
    private long particleSystemHandle_;
    /**
     * optional int64 particle_system_handle = 5;
     */
    public boolean hasParticleSystemHandle() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int64 particle_system_handle = 5;
     */
    public long getParticleSystemHandle() {
      return particleSystemHandle_;
    }

    public static final int DODGEABLE_FIELD_NUMBER = 6;
    private boolean dodgeable_;
    /**
     * optional bool dodgeable = 6;
     */
    public boolean hasDodgeable() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool dodgeable = 6;
     */
    public boolean getDodgeable() {
      return dodgeable_;
    }

    public static final int IS_ATTACK_FIELD_NUMBER = 7;
    private boolean isAttack_;
    /**
     * optional bool is_attack = 7;
     */
    public boolean hasIsAttack() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool is_attack = 7;
     */
    public boolean getIsAttack() {
      return isAttack_;
    }

    public static final int EXPIRE_TIME_FIELD_NUMBER = 9;
    private float expireTime_;
    /**
     * optional float expire_time = 9;
     */
    public boolean hasExpireTime() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional float expire_time = 9;
     */
    public float getExpireTime() {
      return expireTime_;
    }

    public static final int MAXIMPACTTIME_FIELD_NUMBER = 10;
    private float maximpacttime_;
    /**
     * optional float maximpacttime = 10;
     */
    public boolean hasMaximpacttime() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional float maximpacttime = 10;
     */
    public float getMaximpacttime() {
      return maximpacttime_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 11;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    public static final int LAUNCH_TICK_FIELD_NUMBER = 12;
    private int launchTick_;
    /**
     * optional int32 launch_tick = 12;
     */
    public boolean hasLaunchTick() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional int32 launch_tick = 12;
     */
    public int getLaunchTick() {
      return launchTick_;
    }

    public static final int HANDLE_FIELD_NUMBER = 13;
    private int handle_;
    /**
     * optional int32 handle = 13;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional int32 handle = 13;
     */
    public int getHandle() {
      return handle_;
    }

    public static final int TARGET_LOC_FIELD_NUMBER = 14;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector targetLoc_;
    /**
     * optional .CMsgVector target_loc = 14;
     */
    public boolean hasTargetLoc() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional .CMsgVector target_loc = 14;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc() {
      return targetLoc_;
    }
    /**
     * optional .CMsgVector target_loc = 14;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder() {
      return targetLoc_;
    }

    public static final int PARTICLE_CP_DATA_FIELD_NUMBER = 15;
    private java.util.List particleCpData_;
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    public java.util.List getParticleCpDataList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    public java.util.List 
        getParticleCpDataOrBuilderList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    public int getParticleCpDataCount() {
      return particleCpData_.size();
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
      return particleCpData_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index) {
      return particleCpData_.get(index);
    }

    public static final int ADDITIONAL_PARTICLE_SYSTEM_HANDLE_FIELD_NUMBER = 16;
    private long additionalParticleSystemHandle_;
    /**
     * optional int64 additional_particle_system_handle = 16;
     */
    public boolean hasAdditionalParticleSystemHandle() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int64 additional_particle_system_handle = 16;
     */
    public long getAdditionalParticleSystemHandle() {
      return additionalParticleSystemHandle_;
    }

    public static final int ORIGINAL_MOVE_SPEED_FIELD_NUMBER = 17;
    private int originalMoveSpeed_;
    /**
     * optional int32 original_move_speed = 17;
     */
    public boolean hasOriginalMoveSpeed() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional int32 original_move_speed = 17;
     */
    public int getOriginalMoveSpeed() {
      return originalMoveSpeed_;
    }

    public static final int ABILITY_FIELD_NUMBER = 18;
    private int ability_;
    /**
     * optional uint32 ability = 18 [default = 16777215];
     */
    public boolean hasAbility() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional uint32 ability = 18 [default = 16777215];
     */
    public int getAbility() {
      return ability_;
    }

    private void initFields() {
      source_ = 0;
      target_ = 0;
      moveSpeed_ = 0;
      sourceAttachment_ = 0;
      particleSystemHandle_ = 0L;
      dodgeable_ = false;
      isAttack_ = false;
      expireTime_ = 0F;
      maximpacttime_ = 0F;
      colorgemcolor_ = 0;
      launchTick_ = 0;
      handle_ = 0;
      targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      particleCpData_ = java.util.Collections.emptyList();
      additionalParticleSystemHandle_ = 0L;
      originalMoveSpeed_ = 0;
      ability_ = 16777215;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, source_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, target_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, sourceAttachment_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, dodgeable_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, isAttack_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeFloat(9, expireTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFloat(10, maximpacttime_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeFixed32(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeInt32(12, launchTick_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeInt32(13, handle_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(14, targetLoc_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        output.writeMessage(15, particleCpData_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt64(16, additionalParticleSystemHandle_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeInt32(17, originalMoveSpeed_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeUInt32(18, ability_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, source_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, target_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, sourceAttachment_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, dodgeable_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isAttack_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, expireTime_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, maximpacttime_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, launchTick_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, handle_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, targetLoc_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, particleCpData_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(16, additionalParticleSystemHandle_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(17, originalMoveSpeed_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(18, ability_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_Projectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_Projectile)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTargetLocFieldBuilder();
          getParticleCpDataFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        source_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        target_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        sourceAttachment_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        particleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        dodgeable_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttack_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        expireTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000080);
        maximpacttime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        launchTick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        if (targetLocBuilder_ == null) {
          targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          targetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
        } else {
          particleCpDataBuilder_.clear();
        }
        additionalParticleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00004000);
        originalMoveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        ability_ = 16777215;
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.source_ = source_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.target_ = target_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moveSpeed_ = moveSpeed_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sourceAttachment_ = sourceAttachment_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.particleSystemHandle_ = particleSystemHandle_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.dodgeable_ = dodgeable_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isAttack_ = isAttack_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.expireTime_ = expireTime_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.maximpacttime_ = maximpacttime_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.colorgemcolor_ = colorgemcolor_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.launchTick_ = launchTick_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (targetLocBuilder_ == null) {
          result.targetLoc_ = targetLoc_;
        } else {
          result.targetLoc_ = targetLocBuilder_.build();
        }
        if (particleCpDataBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)) {
            particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.particleCpData_ = particleCpData_;
        } else {
          result.particleCpData_ = particleCpDataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.additionalParticleSystemHandle_ = additionalParticleSystemHandle_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.originalMoveSpeed_ = originalMoveSpeed_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.ability_ = ability_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile.getDefaultInstance()) return this;
        if (other.hasSource()) {
          setSource(other.getSource());
        }
        if (other.hasTarget()) {
          setTarget(other.getTarget());
        }
        if (other.hasMoveSpeed()) {
          setMoveSpeed(other.getMoveSpeed());
        }
        if (other.hasSourceAttachment()) {
          setSourceAttachment(other.getSourceAttachment());
        }
        if (other.hasParticleSystemHandle()) {
          setParticleSystemHandle(other.getParticleSystemHandle());
        }
        if (other.hasDodgeable()) {
          setDodgeable(other.getDodgeable());
        }
        if (other.hasIsAttack()) {
          setIsAttack(other.getIsAttack());
        }
        if (other.hasExpireTime()) {
          setExpireTime(other.getExpireTime());
        }
        if (other.hasMaximpacttime()) {
          setMaximpacttime(other.getMaximpacttime());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        if (other.hasLaunchTick()) {
          setLaunchTick(other.getLaunchTick());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasTargetLoc()) {
          mergeTargetLoc(other.getTargetLoc());
        }
        if (particleCpDataBuilder_ == null) {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpData_.isEmpty()) {
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureParticleCpDataIsMutable();
              particleCpData_.addAll(other.particleCpData_);
            }
            onChanged();
          }
        } else {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpDataBuilder_.isEmpty()) {
              particleCpDataBuilder_.dispose();
              particleCpDataBuilder_ = null;
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00002000);
              particleCpDataBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getParticleCpDataFieldBuilder() : null;
            } else {
              particleCpDataBuilder_.addAllMessages(other.particleCpData_);
            }
          }
        }
        if (other.hasAdditionalParticleSystemHandle()) {
          setAdditionalParticleSystemHandle(other.getAdditionalParticleSystemHandle());
        }
        if (other.hasOriginalMoveSpeed()) {
          setOriginalMoveSpeed(other.getOriginalMoveSpeed());
        }
        if (other.hasAbility()) {
          setAbility(other.getAbility());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_Projectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int source_ ;
      /**
       * optional uint32 source = 1;
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 source = 1;
       */
      public int getSource() {
        return source_;
      }
      /**
       * optional uint32 source = 1;
       */
      public Builder setSource(int value) {
        bitField0_ |= 0x00000001;
        source_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 source = 1;
       */
      public Builder clearSource() {
        bitField0_ = (bitField0_ & ~0x00000001);
        source_ = 0;
        onChanged();
        return this;
      }

      private int target_ ;
      /**
       * optional uint32 target = 2;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target = 2;
       */
      public int getTarget() {
        return target_;
      }
      /**
       * optional uint32 target = 2;
       */
      public Builder setTarget(int value) {
        bitField0_ |= 0x00000002;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target = 2;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        target_ = 0;
        onChanged();
        return this;
      }

      private int moveSpeed_ ;
      /**
       * optional int32 move_speed = 3;
       */
      public boolean hasMoveSpeed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 move_speed = 3;
       */
      public int getMoveSpeed() {
        return moveSpeed_;
      }
      /**
       * optional int32 move_speed = 3;
       */
      public Builder setMoveSpeed(int value) {
        bitField0_ |= 0x00000004;
        moveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 move_speed = 3;
       */
      public Builder clearMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moveSpeed_ = 0;
        onChanged();
        return this;
      }

      private int sourceAttachment_ ;
      /**
       * optional int32 source_attachment = 4;
       */
      public boolean hasSourceAttachment() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 source_attachment = 4;
       */
      public int getSourceAttachment() {
        return sourceAttachment_;
      }
      /**
       * optional int32 source_attachment = 4;
       */
      public Builder setSourceAttachment(int value) {
        bitField0_ |= 0x00000008;
        sourceAttachment_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_attachment = 4;
       */
      public Builder clearSourceAttachment() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sourceAttachment_ = 0;
        onChanged();
        return this;
      }

      private long particleSystemHandle_ ;
      /**
       * optional int64 particle_system_handle = 5;
       */
      public boolean hasParticleSystemHandle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int64 particle_system_handle = 5;
       */
      public long getParticleSystemHandle() {
        return particleSystemHandle_;
      }
      /**
       * optional int64 particle_system_handle = 5;
       */
      public Builder setParticleSystemHandle(long value) {
        bitField0_ |= 0x00000010;
        particleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 particle_system_handle = 5;
       */
      public Builder clearParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00000010);
        particleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private boolean dodgeable_ ;
      /**
       * optional bool dodgeable = 6;
       */
      public boolean hasDodgeable() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool dodgeable = 6;
       */
      public boolean getDodgeable() {
        return dodgeable_;
      }
      /**
       * optional bool dodgeable = 6;
       */
      public Builder setDodgeable(boolean value) {
        bitField0_ |= 0x00000020;
        dodgeable_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool dodgeable = 6;
       */
      public Builder clearDodgeable() {
        bitField0_ = (bitField0_ & ~0x00000020);
        dodgeable_ = false;
        onChanged();
        return this;
      }

      private boolean isAttack_ ;
      /**
       * optional bool is_attack = 7;
       */
      public boolean hasIsAttack() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool is_attack = 7;
       */
      public boolean getIsAttack() {
        return isAttack_;
      }
      /**
       * optional bool is_attack = 7;
       */
      public Builder setIsAttack(boolean value) {
        bitField0_ |= 0x00000040;
        isAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attack = 7;
       */
      public Builder clearIsAttack() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttack_ = false;
        onChanged();
        return this;
      }

      private float expireTime_ ;
      /**
       * optional float expire_time = 9;
       */
      public boolean hasExpireTime() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional float expire_time = 9;
       */
      public float getExpireTime() {
        return expireTime_;
      }
      /**
       * optional float expire_time = 9;
       */
      public Builder setExpireTime(float value) {
        bitField0_ |= 0x00000080;
        expireTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float expire_time = 9;
       */
      public Builder clearExpireTime() {
        bitField0_ = (bitField0_ & ~0x00000080);
        expireTime_ = 0F;
        onChanged();
        return this;
      }

      private float maximpacttime_ ;
      /**
       * optional float maximpacttime = 10;
       */
      public boolean hasMaximpacttime() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float maximpacttime = 10;
       */
      public float getMaximpacttime() {
        return maximpacttime_;
      }
      /**
       * optional float maximpacttime = 10;
       */
      public Builder setMaximpacttime(float value) {
        bitField0_ |= 0x00000100;
        maximpacttime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float maximpacttime = 10;
       */
      public Builder clearMaximpacttime() {
        bitField0_ = (bitField0_ & ~0x00000100);
        maximpacttime_ = 0F;
        onChanged();
        return this;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000200;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000200);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      private int launchTick_ ;
      /**
       * optional int32 launch_tick = 12;
       */
      public boolean hasLaunchTick() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public int getLaunchTick() {
        return launchTick_;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder setLaunchTick(int value) {
        bitField0_ |= 0x00000400;
        launchTick_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder clearLaunchTick() {
        bitField0_ = (bitField0_ & ~0x00000400);
        launchTick_ = 0;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 13;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional int32 handle = 13;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000800;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000800);
        handle_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> targetLocBuilder_;
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public boolean hasTargetLoc() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc() {
        if (targetLocBuilder_ == null) {
          return targetLoc_;
        } else {
          return targetLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public Builder setTargetLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (targetLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetLoc_ = value;
          onChanged();
        } else {
          targetLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public Builder setTargetLoc(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (targetLocBuilder_ == null) {
          targetLoc_ = builderForValue.build();
          onChanged();
        } else {
          targetLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public Builder mergeTargetLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (targetLocBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000) &&
              targetLoc_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            targetLoc_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(targetLoc_).mergeFrom(value).buildPartial();
          } else {
            targetLoc_ = value;
          }
          onChanged();
        } else {
          targetLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public Builder clearTargetLoc() {
        if (targetLocBuilder_ == null) {
          targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          targetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getTargetLocBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getTargetLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder() {
        if (targetLocBuilder_ != null) {
          return targetLocBuilder_.getMessageOrBuilder();
        } else {
          return targetLoc_;
        }
      }
      /**
       * optional .CMsgVector target_loc = 14;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getTargetLocFieldBuilder() {
        if (targetLocBuilder_ == null) {
          targetLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getTargetLoc(),
                  getParentForChildren(),
                  isClean());
          targetLoc_ = null;
        }
        return targetLocBuilder_;
      }

      private java.util.List particleCpData_ =
        java.util.Collections.emptyList();
      private void ensureParticleCpDataIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          particleCpData_ = new java.util.ArrayList(particleCpData_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> particleCpDataBuilder_;

      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public java.util.List getParticleCpDataList() {
        if (particleCpDataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(particleCpData_);
        } else {
          return particleCpDataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public int getParticleCpDataCount() {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.size();
        } else {
          return particleCpDataBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);
        } else {
          return particleCpDataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder addParticleCpData(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder addParticleCpData(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder addAllParticleCpData(
          java.lang.Iterable values) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, particleCpData_);
          onChanged();
        } else {
          particleCpDataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder clearParticleCpData() {
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          particleCpDataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public Builder removeParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.remove(index);
          onChanged();
        } else {
          particleCpDataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder getParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
          int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);  } else {
          return particleCpDataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public java.util.List 
           getParticleCpDataOrBuilderList() {
        if (particleCpDataBuilder_ != null) {
          return particleCpDataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(particleCpData_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder() {
        return getParticleCpDataFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 15;
       */
      public java.util.List 
           getParticleCpDataBuilderList() {
        return getParticleCpDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> 
          getParticleCpDataFieldBuilder() {
        if (particleCpDataBuilder_ == null) {
          particleCpDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder>(
                  particleCpData_,
                  ((bitField0_ & 0x00002000) == 0x00002000),
                  getParentForChildren(),
                  isClean());
          particleCpData_ = null;
        }
        return particleCpDataBuilder_;
      }

      private long additionalParticleSystemHandle_ ;
      /**
       * optional int64 additional_particle_system_handle = 16;
       */
      public boolean hasAdditionalParticleSystemHandle() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional int64 additional_particle_system_handle = 16;
       */
      public long getAdditionalParticleSystemHandle() {
        return additionalParticleSystemHandle_;
      }
      /**
       * optional int64 additional_particle_system_handle = 16;
       */
      public Builder setAdditionalParticleSystemHandle(long value) {
        bitField0_ |= 0x00004000;
        additionalParticleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 additional_particle_system_handle = 16;
       */
      public Builder clearAdditionalParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00004000);
        additionalParticleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private int originalMoveSpeed_ ;
      /**
       * optional int32 original_move_speed = 17;
       */
      public boolean hasOriginalMoveSpeed() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional int32 original_move_speed = 17;
       */
      public int getOriginalMoveSpeed() {
        return originalMoveSpeed_;
      }
      /**
       * optional int32 original_move_speed = 17;
       */
      public Builder setOriginalMoveSpeed(int value) {
        bitField0_ |= 0x00008000;
        originalMoveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 original_move_speed = 17;
       */
      public Builder clearOriginalMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00008000);
        originalMoveSpeed_ = 0;
        onChanged();
        return this;
      }

      private int ability_ = 16777215;
      /**
       * optional uint32 ability = 18 [default = 16777215];
       */
      public boolean hasAbility() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional uint32 ability = 18 [default = 16777215];
       */
      public int getAbility() {
        return ability_;
      }
      /**
       * optional uint32 ability = 18 [default = 16777215];
       */
      public Builder setAbility(int value) {
        bitField0_ |= 0x00010000;
        ability_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability = 18 [default = 16777215];
       */
      public Builder clearAbility() {
        bitField0_ = (bitField0_ & ~0x00010000);
        ability_ = 16777215;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_Projectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_Projectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_Projectile)
  }

  public interface CDOTAUserMsg_TE_ProjectileLocOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_ProjectileLoc)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CMsgVector source_loc = 1;
     */
    boolean hasSourceLoc();
    /**
     * optional .CMsgVector source_loc = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getSourceLoc();
    /**
     * optional .CMsgVector source_loc = 1;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getSourceLocOrBuilder();

    /**
     * optional uint32 target = 2;
     */
    boolean hasTarget();
    /**
     * optional uint32 target = 2;
     */
    int getTarget();

    /**
     * optional int32 move_speed = 3;
     */
    boolean hasMoveSpeed();
    /**
     * optional int32 move_speed = 3;
     */
    int getMoveSpeed();

    /**
     * optional int64 particle_system_handle = 4;
     */
    boolean hasParticleSystemHandle();
    /**
     * optional int64 particle_system_handle = 4;
     */
    long getParticleSystemHandle();

    /**
     * optional bool dodgeable = 5;
     */
    boolean hasDodgeable();
    /**
     * optional bool dodgeable = 5;
     */
    boolean getDodgeable();

    /**
     * optional bool is_attack = 6;
     */
    boolean hasIsAttack();
    /**
     * optional bool is_attack = 6;
     */
    boolean getIsAttack();

    /**
     * optional float expire_time = 9;
     */
    boolean hasExpireTime();
    /**
     * optional float expire_time = 9;
     */
    float getExpireTime();

    /**
     * optional .CMsgVector target_loc = 10;
     */
    boolean hasTargetLoc();
    /**
     * optional .CMsgVector target_loc = 10;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc();
    /**
     * optional .CMsgVector target_loc = 10;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder();

    /**
     * optional fixed32 colorgemcolor = 11;
     */
    boolean hasColorgemcolor();
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    int getColorgemcolor();

    /**
     * optional int32 launch_tick = 12;
     */
    boolean hasLaunchTick();
    /**
     * optional int32 launch_tick = 12;
     */
    int getLaunchTick();

    /**
     * optional int32 handle = 13;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 13;
     */
    int getHandle();

    /**
     * optional uint32 source = 14;
     */
    boolean hasSource();
    /**
     * optional uint32 source = 14;
     */
    int getSource();

    /**
     * optional int32 source_attachment = 15;
     */
    boolean hasSourceAttachment();
    /**
     * optional int32 source_attachment = 15;
     */
    int getSourceAttachment();

    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    java.util.List 
        getParticleCpDataList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index);
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    int getParticleCpDataCount();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    java.util.List 
        getParticleCpDataOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index);

    /**
     * optional int64 additional_particle_system_handle = 17;
     */
    boolean hasAdditionalParticleSystemHandle();
    /**
     * optional int64 additional_particle_system_handle = 17;
     */
    long getAdditionalParticleSystemHandle();

    /**
     * optional int32 original_move_speed = 18;
     */
    boolean hasOriginalMoveSpeed();
    /**
     * optional int32 original_move_speed = 18;
     */
    int getOriginalMoveSpeed();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_ProjectileLoc}
   */
  public static final class CDOTAUserMsg_TE_ProjectileLoc extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_ProjectileLoc)
      CDOTAUserMsg_TE_ProjectileLocOrBuilder {
    // Use CDOTAUserMsg_TE_ProjectileLoc.newBuilder() to construct.
    private CDOTAUserMsg_TE_ProjectileLoc(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_ProjectileLoc(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_ProjectileLoc defaultInstance;
    public static CDOTAUserMsg_TE_ProjectileLoc getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_ProjectileLoc getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_ProjectileLoc(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = sourceLoc_.toBuilder();
              }
              sourceLoc_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(sourceLoc_);
                sourceLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              target_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              moveSpeed_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              particleSystemHandle_ = input.readInt64();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              dodgeable_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              isAttack_ = input.readBool();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000040;
              expireTime_ = input.readFloat();
              break;
            }
            case 82: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000080) == 0x00000080)) {
                subBuilder = targetLoc_.toBuilder();
              }
              targetLoc_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(targetLoc_);
                targetLoc_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000080;
              break;
            }
            case 93: {
              bitField0_ |= 0x00000100;
              colorgemcolor_ = input.readFixed32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000200;
              launchTick_ = input.readInt32();
              break;
            }
            case 104: {
              bitField0_ |= 0x00000400;
              handle_ = input.readInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00000800;
              source_ = input.readUInt32();
              break;
            }
            case 120: {
              bitField0_ |= 0x00001000;
              sourceAttachment_ = input.readInt32();
              break;
            }
            case 130: {
              if (!((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
                particleCpData_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00002000;
              }
              particleCpData_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.PARSER, extensionRegistry));
              break;
            }
            case 136: {
              bitField0_ |= 0x00002000;
              additionalParticleSystemHandle_ = input.readInt64();
              break;
            }
            case 144: {
              bitField0_ |= 0x00004000;
              originalMoveSpeed_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00002000) == 0x00002000)) {
          particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_ProjectileLoc parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_ProjectileLoc(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_LOC_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector sourceLoc_;
    /**
     * optional .CMsgVector source_loc = 1;
     */
    public boolean hasSourceLoc() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CMsgVector source_loc = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getSourceLoc() {
      return sourceLoc_;
    }
    /**
     * optional .CMsgVector source_loc = 1;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getSourceLocOrBuilder() {
      return sourceLoc_;
    }

    public static final int TARGET_FIELD_NUMBER = 2;
    private int target_;
    /**
     * optional uint32 target = 2;
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target = 2;
     */
    public int getTarget() {
      return target_;
    }

    public static final int MOVE_SPEED_FIELD_NUMBER = 3;
    private int moveSpeed_;
    /**
     * optional int32 move_speed = 3;
     */
    public boolean hasMoveSpeed() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 move_speed = 3;
     */
    public int getMoveSpeed() {
      return moveSpeed_;
    }

    public static final int PARTICLE_SYSTEM_HANDLE_FIELD_NUMBER = 4;
    private long particleSystemHandle_;
    /**
     * optional int64 particle_system_handle = 4;
     */
    public boolean hasParticleSystemHandle() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int64 particle_system_handle = 4;
     */
    public long getParticleSystemHandle() {
      return particleSystemHandle_;
    }

    public static final int DODGEABLE_FIELD_NUMBER = 5;
    private boolean dodgeable_;
    /**
     * optional bool dodgeable = 5;
     */
    public boolean hasDodgeable() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool dodgeable = 5;
     */
    public boolean getDodgeable() {
      return dodgeable_;
    }

    public static final int IS_ATTACK_FIELD_NUMBER = 6;
    private boolean isAttack_;
    /**
     * optional bool is_attack = 6;
     */
    public boolean hasIsAttack() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool is_attack = 6;
     */
    public boolean getIsAttack() {
      return isAttack_;
    }

    public static final int EXPIRE_TIME_FIELD_NUMBER = 9;
    private float expireTime_;
    /**
     * optional float expire_time = 9;
     */
    public boolean hasExpireTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float expire_time = 9;
     */
    public float getExpireTime() {
      return expireTime_;
    }

    public static final int TARGET_LOC_FIELD_NUMBER = 10;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector targetLoc_;
    /**
     * optional .CMsgVector target_loc = 10;
     */
    public boolean hasTargetLoc() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional .CMsgVector target_loc = 10;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc() {
      return targetLoc_;
    }
    /**
     * optional .CMsgVector target_loc = 10;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder() {
      return targetLoc_;
    }

    public static final int COLORGEMCOLOR_FIELD_NUMBER = 11;
    private int colorgemcolor_;
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public boolean hasColorgemcolor() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional fixed32 colorgemcolor = 11;
     */
    public int getColorgemcolor() {
      return colorgemcolor_;
    }

    public static final int LAUNCH_TICK_FIELD_NUMBER = 12;
    private int launchTick_;
    /**
     * optional int32 launch_tick = 12;
     */
    public boolean hasLaunchTick() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional int32 launch_tick = 12;
     */
    public int getLaunchTick() {
      return launchTick_;
    }

    public static final int HANDLE_FIELD_NUMBER = 13;
    private int handle_;
    /**
     * optional int32 handle = 13;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional int32 handle = 13;
     */
    public int getHandle() {
      return handle_;
    }

    public static final int SOURCE_FIELD_NUMBER = 14;
    private int source_;
    /**
     * optional uint32 source = 14;
     */
    public boolean hasSource() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional uint32 source = 14;
     */
    public int getSource() {
      return source_;
    }

    public static final int SOURCE_ATTACHMENT_FIELD_NUMBER = 15;
    private int sourceAttachment_;
    /**
     * optional int32 source_attachment = 15;
     */
    public boolean hasSourceAttachment() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional int32 source_attachment = 15;
     */
    public int getSourceAttachment() {
      return sourceAttachment_;
    }

    public static final int PARTICLE_CP_DATA_FIELD_NUMBER = 16;
    private java.util.List particleCpData_;
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    public java.util.List getParticleCpDataList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    public java.util.List 
        getParticleCpDataOrBuilderList() {
      return particleCpData_;
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    public int getParticleCpDataCount() {
      return particleCpData_.size();
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
      return particleCpData_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
        int index) {
      return particleCpData_.get(index);
    }

    public static final int ADDITIONAL_PARTICLE_SYSTEM_HANDLE_FIELD_NUMBER = 17;
    private long additionalParticleSystemHandle_;
    /**
     * optional int64 additional_particle_system_handle = 17;
     */
    public boolean hasAdditionalParticleSystemHandle() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int64 additional_particle_system_handle = 17;
     */
    public long getAdditionalParticleSystemHandle() {
      return additionalParticleSystemHandle_;
    }

    public static final int ORIGINAL_MOVE_SPEED_FIELD_NUMBER = 18;
    private int originalMoveSpeed_;
    /**
     * optional int32 original_move_speed = 18;
     */
    public boolean hasOriginalMoveSpeed() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional int32 original_move_speed = 18;
     */
    public int getOriginalMoveSpeed() {
      return originalMoveSpeed_;
    }

    private void initFields() {
      sourceLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      target_ = 0;
      moveSpeed_ = 0;
      particleSystemHandle_ = 0L;
      dodgeable_ = false;
      isAttack_ = false;
      expireTime_ = 0F;
      targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      colorgemcolor_ = 0;
      launchTick_ = 0;
      handle_ = 0;
      source_ = 0;
      sourceAttachment_ = 0;
      particleCpData_ = java.util.Collections.emptyList();
      additionalParticleSystemHandle_ = 0L;
      originalMoveSpeed_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, sourceLoc_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, target_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, dodgeable_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, isAttack_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(9, expireTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(10, targetLoc_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeFixed32(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt32(12, launchTick_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeInt32(13, handle_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeUInt32(14, source_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt32(15, sourceAttachment_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        output.writeMessage(16, particleCpData_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt64(17, additionalParticleSystemHandle_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeInt32(18, originalMoveSpeed_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, sourceLoc_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, target_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, moveSpeed_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, particleSystemHandle_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, dodgeable_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, isAttack_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, expireTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, targetLoc_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed32Size(11, colorgemcolor_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(12, launchTick_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, handle_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(14, source_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(15, sourceAttachment_);
      }
      for (int i = 0; i < particleCpData_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(16, particleCpData_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(17, additionalParticleSystemHandle_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(18, originalMoveSpeed_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_ProjectileLoc}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_ProjectileLoc)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLocOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getSourceLocFieldBuilder();
          getTargetLocFieldBuilder();
          getParticleCpDataFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (sourceLocBuilder_ == null) {
          sourceLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          sourceLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        target_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        moveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        particleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        dodgeable_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        isAttack_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        expireTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        if (targetLocBuilder_ == null) {
          targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          targetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        colorgemcolor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        launchTick_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        source_ = 0;
        bitField0_ = (bitField0_ & ~0x00000800);
        sourceAttachment_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
        } else {
          particleCpDataBuilder_.clear();
        }
        additionalParticleSystemHandle_ = 0L;
        bitField0_ = (bitField0_ & ~0x00004000);
        originalMoveSpeed_ = 0;
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (sourceLocBuilder_ == null) {
          result.sourceLoc_ = sourceLoc_;
        } else {
          result.sourceLoc_ = sourceLocBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.target_ = target_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.moveSpeed_ = moveSpeed_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.particleSystemHandle_ = particleSystemHandle_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.dodgeable_ = dodgeable_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.isAttack_ = isAttack_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.expireTime_ = expireTime_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (targetLocBuilder_ == null) {
          result.targetLoc_ = targetLoc_;
        } else {
          result.targetLoc_ = targetLocBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.colorgemcolor_ = colorgemcolor_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.launchTick_ = launchTick_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.handle_ = handle_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.source_ = source_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.sourceAttachment_ = sourceAttachment_;
        if (particleCpDataBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)) {
            particleCpData_ = java.util.Collections.unmodifiableList(particleCpData_);
            bitField0_ = (bitField0_ & ~0x00002000);
          }
          result.particleCpData_ = particleCpData_;
        } else {
          result.particleCpData_ = particleCpDataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.additionalParticleSystemHandle_ = additionalParticleSystemHandle_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.originalMoveSpeed_ = originalMoveSpeed_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc.getDefaultInstance()) return this;
        if (other.hasSourceLoc()) {
          mergeSourceLoc(other.getSourceLoc());
        }
        if (other.hasTarget()) {
          setTarget(other.getTarget());
        }
        if (other.hasMoveSpeed()) {
          setMoveSpeed(other.getMoveSpeed());
        }
        if (other.hasParticleSystemHandle()) {
          setParticleSystemHandle(other.getParticleSystemHandle());
        }
        if (other.hasDodgeable()) {
          setDodgeable(other.getDodgeable());
        }
        if (other.hasIsAttack()) {
          setIsAttack(other.getIsAttack());
        }
        if (other.hasExpireTime()) {
          setExpireTime(other.getExpireTime());
        }
        if (other.hasTargetLoc()) {
          mergeTargetLoc(other.getTargetLoc());
        }
        if (other.hasColorgemcolor()) {
          setColorgemcolor(other.getColorgemcolor());
        }
        if (other.hasLaunchTick()) {
          setLaunchTick(other.getLaunchTick());
        }
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        if (other.hasSource()) {
          setSource(other.getSource());
        }
        if (other.hasSourceAttachment()) {
          setSourceAttachment(other.getSourceAttachment());
        }
        if (particleCpDataBuilder_ == null) {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpData_.isEmpty()) {
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00002000);
            } else {
              ensureParticleCpDataIsMutable();
              particleCpData_.addAll(other.particleCpData_);
            }
            onChanged();
          }
        } else {
          if (!other.particleCpData_.isEmpty()) {
            if (particleCpDataBuilder_.isEmpty()) {
              particleCpDataBuilder_.dispose();
              particleCpDataBuilder_ = null;
              particleCpData_ = other.particleCpData_;
              bitField0_ = (bitField0_ & ~0x00002000);
              particleCpDataBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getParticleCpDataFieldBuilder() : null;
            } else {
              particleCpDataBuilder_.addAllMessages(other.particleCpData_);
            }
          }
        }
        if (other.hasAdditionalParticleSystemHandle()) {
          setAdditionalParticleSystemHandle(other.getAdditionalParticleSystemHandle());
        }
        if (other.hasOriginalMoveSpeed()) {
          setOriginalMoveSpeed(other.getOriginalMoveSpeed());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_ProjectileLoc) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector sourceLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> sourceLocBuilder_;
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public boolean hasSourceLoc() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getSourceLoc() {
        if (sourceLocBuilder_ == null) {
          return sourceLoc_;
        } else {
          return sourceLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public Builder setSourceLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (sourceLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sourceLoc_ = value;
          onChanged();
        } else {
          sourceLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public Builder setSourceLoc(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (sourceLocBuilder_ == null) {
          sourceLoc_ = builderForValue.build();
          onChanged();
        } else {
          sourceLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public Builder mergeSourceLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (sourceLocBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              sourceLoc_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            sourceLoc_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(sourceLoc_).mergeFrom(value).buildPartial();
          } else {
            sourceLoc_ = value;
          }
          onChanged();
        } else {
          sourceLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public Builder clearSourceLoc() {
        if (sourceLocBuilder_ == null) {
          sourceLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          sourceLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getSourceLocBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSourceLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getSourceLocOrBuilder() {
        if (sourceLocBuilder_ != null) {
          return sourceLocBuilder_.getMessageOrBuilder();
        } else {
          return sourceLoc_;
        }
      }
      /**
       * optional .CMsgVector source_loc = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getSourceLocFieldBuilder() {
        if (sourceLocBuilder_ == null) {
          sourceLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getSourceLoc(),
                  getParentForChildren(),
                  isClean());
          sourceLoc_ = null;
        }
        return sourceLocBuilder_;
      }

      private int target_ ;
      /**
       * optional uint32 target = 2;
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target = 2;
       */
      public int getTarget() {
        return target_;
      }
      /**
       * optional uint32 target = 2;
       */
      public Builder setTarget(int value) {
        bitField0_ |= 0x00000002;
        target_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target = 2;
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        target_ = 0;
        onChanged();
        return this;
      }

      private int moveSpeed_ ;
      /**
       * optional int32 move_speed = 3;
       */
      public boolean hasMoveSpeed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 move_speed = 3;
       */
      public int getMoveSpeed() {
        return moveSpeed_;
      }
      /**
       * optional int32 move_speed = 3;
       */
      public Builder setMoveSpeed(int value) {
        bitField0_ |= 0x00000004;
        moveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 move_speed = 3;
       */
      public Builder clearMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00000004);
        moveSpeed_ = 0;
        onChanged();
        return this;
      }

      private long particleSystemHandle_ ;
      /**
       * optional int64 particle_system_handle = 4;
       */
      public boolean hasParticleSystemHandle() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int64 particle_system_handle = 4;
       */
      public long getParticleSystemHandle() {
        return particleSystemHandle_;
      }
      /**
       * optional int64 particle_system_handle = 4;
       */
      public Builder setParticleSystemHandle(long value) {
        bitField0_ |= 0x00000008;
        particleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 particle_system_handle = 4;
       */
      public Builder clearParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00000008);
        particleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private boolean dodgeable_ ;
      /**
       * optional bool dodgeable = 5;
       */
      public boolean hasDodgeable() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool dodgeable = 5;
       */
      public boolean getDodgeable() {
        return dodgeable_;
      }
      /**
       * optional bool dodgeable = 5;
       */
      public Builder setDodgeable(boolean value) {
        bitField0_ |= 0x00000010;
        dodgeable_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool dodgeable = 5;
       */
      public Builder clearDodgeable() {
        bitField0_ = (bitField0_ & ~0x00000010);
        dodgeable_ = false;
        onChanged();
        return this;
      }

      private boolean isAttack_ ;
      /**
       * optional bool is_attack = 6;
       */
      public boolean hasIsAttack() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool is_attack = 6;
       */
      public boolean getIsAttack() {
        return isAttack_;
      }
      /**
       * optional bool is_attack = 6;
       */
      public Builder setIsAttack(boolean value) {
        bitField0_ |= 0x00000020;
        isAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attack = 6;
       */
      public Builder clearIsAttack() {
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttack_ = false;
        onChanged();
        return this;
      }

      private float expireTime_ ;
      /**
       * optional float expire_time = 9;
       */
      public boolean hasExpireTime() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional float expire_time = 9;
       */
      public float getExpireTime() {
        return expireTime_;
      }
      /**
       * optional float expire_time = 9;
       */
      public Builder setExpireTime(float value) {
        bitField0_ |= 0x00000040;
        expireTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float expire_time = 9;
       */
      public Builder clearExpireTime() {
        bitField0_ = (bitField0_ & ~0x00000040);
        expireTime_ = 0F;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> targetLocBuilder_;
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public boolean hasTargetLoc() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getTargetLoc() {
        if (targetLocBuilder_ == null) {
          return targetLoc_;
        } else {
          return targetLocBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public Builder setTargetLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (targetLocBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetLoc_ = value;
          onChanged();
        } else {
          targetLocBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public Builder setTargetLoc(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (targetLocBuilder_ == null) {
          targetLoc_ = builderForValue.build();
          onChanged();
        } else {
          targetLocBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public Builder mergeTargetLoc(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (targetLocBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              targetLoc_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            targetLoc_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(targetLoc_).mergeFrom(value).buildPartial();
          } else {
            targetLoc_ = value;
          }
          onChanged();
        } else {
          targetLocBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public Builder clearTargetLoc() {
        if (targetLocBuilder_ == null) {
          targetLoc_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          targetLocBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getTargetLocBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getTargetLocFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getTargetLocOrBuilder() {
        if (targetLocBuilder_ != null) {
          return targetLocBuilder_.getMessageOrBuilder();
        } else {
          return targetLoc_;
        }
      }
      /**
       * optional .CMsgVector target_loc = 10;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getTargetLocFieldBuilder() {
        if (targetLocBuilder_ == null) {
          targetLocBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getTargetLoc(),
                  getParentForChildren(),
                  isClean());
          targetLoc_ = null;
        }
        return targetLocBuilder_;
      }

      private int colorgemcolor_ ;
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public boolean hasColorgemcolor() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public int getColorgemcolor() {
        return colorgemcolor_;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder setColorgemcolor(int value) {
        bitField0_ |= 0x00000100;
        colorgemcolor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed32 colorgemcolor = 11;
       */
      public Builder clearColorgemcolor() {
        bitField0_ = (bitField0_ & ~0x00000100);
        colorgemcolor_ = 0;
        onChanged();
        return this;
      }

      private int launchTick_ ;
      /**
       * optional int32 launch_tick = 12;
       */
      public boolean hasLaunchTick() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public int getLaunchTick() {
        return launchTick_;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder setLaunchTick(int value) {
        bitField0_ |= 0x00000200;
        launchTick_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 launch_tick = 12;
       */
      public Builder clearLaunchTick() {
        bitField0_ = (bitField0_ & ~0x00000200);
        launchTick_ = 0;
        onChanged();
        return this;
      }

      private int handle_ ;
      /**
       * optional int32 handle = 13;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional int32 handle = 13;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000400;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 13;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000400);
        handle_ = 0;
        onChanged();
        return this;
      }

      private int source_ ;
      /**
       * optional uint32 source = 14;
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional uint32 source = 14;
       */
      public int getSource() {
        return source_;
      }
      /**
       * optional uint32 source = 14;
       */
      public Builder setSource(int value) {
        bitField0_ |= 0x00000800;
        source_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 source = 14;
       */
      public Builder clearSource() {
        bitField0_ = (bitField0_ & ~0x00000800);
        source_ = 0;
        onChanged();
        return this;
      }

      private int sourceAttachment_ ;
      /**
       * optional int32 source_attachment = 15;
       */
      public boolean hasSourceAttachment() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional int32 source_attachment = 15;
       */
      public int getSourceAttachment() {
        return sourceAttachment_;
      }
      /**
       * optional int32 source_attachment = 15;
       */
      public Builder setSourceAttachment(int value) {
        bitField0_ |= 0x00001000;
        sourceAttachment_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_attachment = 15;
       */
      public Builder clearSourceAttachment() {
        bitField0_ = (bitField0_ & ~0x00001000);
        sourceAttachment_ = 0;
        onChanged();
        return this;
      }

      private java.util.List particleCpData_ =
        java.util.Collections.emptyList();
      private void ensureParticleCpDataIsMutable() {
        if (!((bitField0_ & 0x00002000) == 0x00002000)) {
          particleCpData_ = new java.util.ArrayList(particleCpData_);
          bitField0_ |= 0x00002000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> particleCpDataBuilder_;

      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public java.util.List getParticleCpDataList() {
        if (particleCpDataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(particleCpData_);
        } else {
          return particleCpDataBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public int getParticleCpDataCount() {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.size();
        } else {
          return particleCpDataBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData getParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);
        } else {
          return particleCpDataBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder setParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.set(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder addParticleCpData(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData value) {
        if (particleCpDataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, value);
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder addParticleCpData(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder addParticleCpData(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder builderForValue) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.add(index, builderForValue.build());
          onChanged();
        } else {
          particleCpDataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder addAllParticleCpData(
          java.lang.Iterable values) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, particleCpData_);
          onChanged();
        } else {
          particleCpDataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder clearParticleCpData() {
        if (particleCpDataBuilder_ == null) {
          particleCpData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00002000);
          onChanged();
        } else {
          particleCpDataBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public Builder removeParticleCpData(int index) {
        if (particleCpDataBuilder_ == null) {
          ensureParticleCpDataIsMutable();
          particleCpData_.remove(index);
          onChanged();
        } else {
          particleCpDataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder getParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder getParticleCpDataOrBuilder(
          int index) {
        if (particleCpDataBuilder_ == null) {
          return particleCpData_.get(index);  } else {
          return particleCpDataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public java.util.List 
           getParticleCpDataOrBuilderList() {
        if (particleCpDataBuilder_ != null) {
          return particleCpDataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(particleCpData_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder() {
        return getParticleCpDataFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder addParticleCpDataBuilder(
          int index) {
        return getParticleCpDataFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_ProjectileParticleCPData particle_cp_data = 16;
       */
      public java.util.List 
           getParticleCpDataBuilderList() {
        return getParticleCpDataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder> 
          getParticleCpDataFieldBuilder() {
        if (particleCpDataBuilder_ == null) {
          particleCpDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPData.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectileParticleCPDataOrBuilder>(
                  particleCpData_,
                  ((bitField0_ & 0x00002000) == 0x00002000),
                  getParentForChildren(),
                  isClean());
          particleCpData_ = null;
        }
        return particleCpDataBuilder_;
      }

      private long additionalParticleSystemHandle_ ;
      /**
       * optional int64 additional_particle_system_handle = 17;
       */
      public boolean hasAdditionalParticleSystemHandle() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional int64 additional_particle_system_handle = 17;
       */
      public long getAdditionalParticleSystemHandle() {
        return additionalParticleSystemHandle_;
      }
      /**
       * optional int64 additional_particle_system_handle = 17;
       */
      public Builder setAdditionalParticleSystemHandle(long value) {
        bitField0_ |= 0x00004000;
        additionalParticleSystemHandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int64 additional_particle_system_handle = 17;
       */
      public Builder clearAdditionalParticleSystemHandle() {
        bitField0_ = (bitField0_ & ~0x00004000);
        additionalParticleSystemHandle_ = 0L;
        onChanged();
        return this;
      }

      private int originalMoveSpeed_ ;
      /**
       * optional int32 original_move_speed = 18;
       */
      public boolean hasOriginalMoveSpeed() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional int32 original_move_speed = 18;
       */
      public int getOriginalMoveSpeed() {
        return originalMoveSpeed_;
      }
      /**
       * optional int32 original_move_speed = 18;
       */
      public Builder setOriginalMoveSpeed(int value) {
        bitField0_ |= 0x00008000;
        originalMoveSpeed_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 original_move_speed = 18;
       */
      public Builder clearOriginalMoveSpeed() {
        bitField0_ = (bitField0_ & ~0x00008000);
        originalMoveSpeed_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_ProjectileLoc)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_ProjectileLoc(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_ProjectileLoc)
  }

  public interface CDOTAUserMsg_TE_DestroyProjectileOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_DestroyProjectile)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 handle = 1;
     */
    boolean hasHandle();
    /**
     * optional int32 handle = 1;
     */
    int getHandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_DestroyProjectile}
   */
  public static final class CDOTAUserMsg_TE_DestroyProjectile extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_DestroyProjectile)
      CDOTAUserMsg_TE_DestroyProjectileOrBuilder {
    // Use CDOTAUserMsg_TE_DestroyProjectile.newBuilder() to construct.
    private CDOTAUserMsg_TE_DestroyProjectile(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_DestroyProjectile(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_DestroyProjectile defaultInstance;
    public static CDOTAUserMsg_TE_DestroyProjectile getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_DestroyProjectile getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_DestroyProjectile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              handle_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_DestroyProjectile parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_DestroyProjectile(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HANDLE_FIELD_NUMBER = 1;
    private int handle_;
    /**
     * optional int32 handle = 1;
     */
    public boolean hasHandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 handle = 1;
     */
    public int getHandle() {
      return handle_;
    }

    private void initFields() {
      handle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, handle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, handle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_DestroyProjectile}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_DestroyProjectile)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        handle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.handle_ = handle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile.getDefaultInstance()) return this;
        if (other.hasHandle()) {
          setHandle(other.getHandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DestroyProjectile) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int handle_ ;
      /**
       * optional int32 handle = 1;
       */
      public boolean hasHandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 handle = 1;
       */
      public int getHandle() {
        return handle_;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder setHandle(int value) {
        bitField0_ |= 0x00000001;
        handle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 handle = 1;
       */
      public Builder clearHandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        handle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_DestroyProjectile)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_DestroyProjectile(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_DestroyProjectile)
  }

  public interface CDOTAUserMsg_TE_DotaBloodImpactOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_DotaBloodImpact)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional int32 entity = 1;
     */
    int getEntity();

    /**
     * optional float scale = 2;
     */
    boolean hasScale();
    /**
     * optional float scale = 2;
     */
    float getScale();

    /**
     * optional float xnormal = 3;
     */
    boolean hasXnormal();
    /**
     * optional float xnormal = 3;
     */
    float getXnormal();

    /**
     * optional float ynormal = 4;
     */
    boolean hasYnormal();
    /**
     * optional float ynormal = 4;
     */
    float getYnormal();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_DotaBloodImpact}
   */
  public static final class CDOTAUserMsg_TE_DotaBloodImpact extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_DotaBloodImpact)
      CDOTAUserMsg_TE_DotaBloodImpactOrBuilder {
    // Use CDOTAUserMsg_TE_DotaBloodImpact.newBuilder() to construct.
    private CDOTAUserMsg_TE_DotaBloodImpact(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_DotaBloodImpact(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_DotaBloodImpact defaultInstance;
    public static CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_DotaBloodImpact(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              scale_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              xnormal_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              ynormal_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_DotaBloodImpact parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_DotaBloodImpact(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional int32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SCALE_FIELD_NUMBER = 2;
    private float scale_;
    /**
     * optional float scale = 2;
     */
    public boolean hasScale() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float scale = 2;
     */
    public float getScale() {
      return scale_;
    }

    public static final int XNORMAL_FIELD_NUMBER = 3;
    private float xnormal_;
    /**
     * optional float xnormal = 3;
     */
    public boolean hasXnormal() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float xnormal = 3;
     */
    public float getXnormal() {
      return xnormal_;
    }

    public static final int YNORMAL_FIELD_NUMBER = 4;
    private float ynormal_;
    /**
     * optional float ynormal = 4;
     */
    public boolean hasYnormal() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float ynormal = 4;
     */
    public float getYnormal() {
      return ynormal_;
    }

    private void initFields() {
      entity_ = 0;
      scale_ = 0F;
      xnormal_ = 0F;
      ynormal_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, scale_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, xnormal_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, ynormal_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, scale_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, xnormal_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, ynormal_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_DotaBloodImpact}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_DotaBloodImpact)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpactOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        scale_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        xnormal_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        ynormal_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.scale_ = scale_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.xnormal_ = xnormal_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.ynormal_ = ynormal_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasScale()) {
          setScale(other.getScale());
        }
        if (other.hasXnormal()) {
          setXnormal(other.getXnormal());
        }
        if (other.hasYnormal()) {
          setYnormal(other.getYnormal());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_DotaBloodImpact) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional int32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private float scale_ ;
      /**
       * optional float scale = 2;
       */
      public boolean hasScale() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float scale = 2;
       */
      public float getScale() {
        return scale_;
      }
      /**
       * optional float scale = 2;
       */
      public Builder setScale(float value) {
        bitField0_ |= 0x00000002;
        scale_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float scale = 2;
       */
      public Builder clearScale() {
        bitField0_ = (bitField0_ & ~0x00000002);
        scale_ = 0F;
        onChanged();
        return this;
      }

      private float xnormal_ ;
      /**
       * optional float xnormal = 3;
       */
      public boolean hasXnormal() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float xnormal = 3;
       */
      public float getXnormal() {
        return xnormal_;
      }
      /**
       * optional float xnormal = 3;
       */
      public Builder setXnormal(float value) {
        bitField0_ |= 0x00000004;
        xnormal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float xnormal = 3;
       */
      public Builder clearXnormal() {
        bitField0_ = (bitField0_ & ~0x00000004);
        xnormal_ = 0F;
        onChanged();
        return this;
      }

      private float ynormal_ ;
      /**
       * optional float ynormal = 4;
       */
      public boolean hasYnormal() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float ynormal = 4;
       */
      public float getYnormal() {
        return ynormal_;
      }
      /**
       * optional float ynormal = 4;
       */
      public Builder setYnormal(float value) {
        bitField0_ |= 0x00000008;
        ynormal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float ynormal = 4;
       */
      public Builder clearYnormal() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ynormal_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_DotaBloodImpact)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_DotaBloodImpact(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_DotaBloodImpact)
  }

  public interface CDOTAUserMsg_AbilityPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AbilityPing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 2;
     */
    int getAbilityId();

    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    boolean hasType();
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE getType();

    /**
     * optional uint32 cooldown_seconds = 4;
     */
    boolean hasCooldownSeconds();
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    int getCooldownSeconds();

    /**
     * optional uint32 level = 5;
     */
    boolean hasLevel();
    /**
     * optional uint32 level = 5;
     */
    int getLevel();

    /**
     * optional bool passive = 6;
     */
    boolean hasPassive();
    /**
     * optional bool passive = 6;
     */
    boolean getPassive();

    /**
     * optional uint32 mana_needed = 7;
     */
    boolean hasManaNeeded();
    /**
     * optional uint32 mana_needed = 7;
     */
    int getManaNeeded();

    /**
     * optional uint32 entity_id = 8;
     */
    boolean hasEntityId();
    /**
     * optional uint32 entity_id = 8;
     */
    int getEntityId();

    /**
     * optional int32 primary_charges = 9;
     */
    boolean hasPrimaryCharges();
    /**
     * optional int32 primary_charges = 9;
     */
    int getPrimaryCharges();

    /**
     * optional int32 secondary_charges = 10;
     */
    boolean hasSecondaryCharges();
    /**
     * optional int32 secondary_charges = 10;
     */
    int getSecondaryCharges();

    /**
     * optional uint32 caster_id = 11;
     */
    boolean hasCasterId();
    /**
     * optional uint32 caster_id = 11;
     */
    int getCasterId();

    /**
     * optional bool ctrl_held = 12;
     */
    boolean hasCtrlHeld();
    /**
     * optional bool ctrl_held = 12;
     */
    boolean getCtrlHeld();

    /**
     * optional float reclaim_time = 13;
     */
    boolean hasReclaimTime();
    /**
     * optional float reclaim_time = 13;
     */
    float getReclaimTime();

    /**
     * optional int32 owner_entity = 14 [default = -1];
     */
    boolean hasOwnerEntity();
    /**
     * optional int32 owner_entity = 14 [default = -1];
     */
    int getOwnerEntity();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilityPing}
   */
  public static final class CDOTAUserMsg_AbilityPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AbilityPing)
      CDOTAUserMsg_AbilityPingOrBuilder {
    // Use CDOTAUserMsg_AbilityPing.newBuilder() to construct.
    private CDOTAUserMsg_AbilityPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilityPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilityPing defaultInstance;
    public static CDOTAUserMsg_AbilityPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilityPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readInt32();
              break;
            }
            case 24: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(3, rawValue);
              } else {
                bitField0_ |= 0x00000004;
                type_ = value;
              }
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              cooldownSeconds_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              level_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              passive_ = input.readBool();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              manaNeeded_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              entityId_ = input.readUInt32();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              primaryCharges_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              secondaryCharges_ = input.readInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              casterId_ = input.readUInt32();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              ctrlHeld_ = input.readBool();
              break;
            }
            case 109: {
              bitField0_ |= 0x00001000;
              reclaimTime_ = input.readFloat();
              break;
            }
            case 112: {
              bitField0_ |= 0x00002000;
              ownerEntity_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilityPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilityPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional int32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE type_;
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE getType() {
      return type_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int cooldownSeconds_;
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 cooldown_seconds = 4;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    public static final int LEVEL_FIELD_NUMBER = 5;
    private int level_;
    /**
     * optional uint32 level = 5;
     */
    public boolean hasLevel() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 level = 5;
     */
    public int getLevel() {
      return level_;
    }

    public static final int PASSIVE_FIELD_NUMBER = 6;
    private boolean passive_;
    /**
     * optional bool passive = 6;
     */
    public boolean hasPassive() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool passive = 6;
     */
    public boolean getPassive() {
      return passive_;
    }

    public static final int MANA_NEEDED_FIELD_NUMBER = 7;
    private int manaNeeded_;
    /**
     * optional uint32 mana_needed = 7;
     */
    public boolean hasManaNeeded() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 mana_needed = 7;
     */
    public int getManaNeeded() {
      return manaNeeded_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 8;
    private int entityId_;
    /**
     * optional uint32 entity_id = 8;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional uint32 entity_id = 8;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int PRIMARY_CHARGES_FIELD_NUMBER = 9;
    private int primaryCharges_;
    /**
     * optional int32 primary_charges = 9;
     */
    public boolean hasPrimaryCharges() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional int32 primary_charges = 9;
     */
    public int getPrimaryCharges() {
      return primaryCharges_;
    }

    public static final int SECONDARY_CHARGES_FIELD_NUMBER = 10;
    private int secondaryCharges_;
    /**
     * optional int32 secondary_charges = 10;
     */
    public boolean hasSecondaryCharges() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional int32 secondary_charges = 10;
     */
    public int getSecondaryCharges() {
      return secondaryCharges_;
    }

    public static final int CASTER_ID_FIELD_NUMBER = 11;
    private int casterId_;
    /**
     * optional uint32 caster_id = 11;
     */
    public boolean hasCasterId() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 caster_id = 11;
     */
    public int getCasterId() {
      return casterId_;
    }

    public static final int CTRL_HELD_FIELD_NUMBER = 12;
    private boolean ctrlHeld_;
    /**
     * optional bool ctrl_held = 12;
     */
    public boolean hasCtrlHeld() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional bool ctrl_held = 12;
     */
    public boolean getCtrlHeld() {
      return ctrlHeld_;
    }

    public static final int RECLAIM_TIME_FIELD_NUMBER = 13;
    private float reclaimTime_;
    /**
     * optional float reclaim_time = 13;
     */
    public boolean hasReclaimTime() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional float reclaim_time = 13;
     */
    public float getReclaimTime() {
      return reclaimTime_;
    }

    public static final int OWNER_ENTITY_FIELD_NUMBER = 14;
    private int ownerEntity_;
    /**
     * optional int32 owner_entity = 14 [default = -1];
     */
    public boolean hasOwnerEntity() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int32 owner_entity = 14 [default = -1];
     */
    public int getOwnerEntity() {
      return ownerEntity_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      cooldownSeconds_ = 0;
      level_ = 0;
      passive_ = false;
      manaNeeded_ = 0;
      entityId_ = 0;
      primaryCharges_ = 0;
      secondaryCharges_ = 0;
      casterId_ = 0;
      ctrlHeld_ = false;
      reclaimTime_ = 0F;
      ownerEntity_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeEnum(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, cooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, level_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, passive_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, manaNeeded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeUInt32(8, entityId_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(9, primaryCharges_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt32(10, secondaryCharges_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(11, casterId_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, ctrlHeld_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeFloat(13, reclaimTime_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt32(14, ownerEntity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(3, type_.getNumber());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, cooldownSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, level_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, passive_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, manaNeeded_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, entityId_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, primaryCharges_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, secondaryCharges_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, casterId_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, ctrlHeld_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(13, reclaimTime_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, ownerEntity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilityPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AbilityPing)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        level_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        passive_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        manaNeeded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        primaryCharges_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        secondaryCharges_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        casterId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        ctrlHeld_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        reclaimTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00001000);
        ownerEntity_ = -1;
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilityPing_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.level_ = level_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.passive_ = passive_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.manaNeeded_ = manaNeeded_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.primaryCharges_ = primaryCharges_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.secondaryCharges_ = secondaryCharges_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.casterId_ = casterId_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.ctrlHeld_ = ctrlHeld_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.reclaimTime_ = reclaimTime_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.ownerEntity_ = ownerEntity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        if (other.hasLevel()) {
          setLevel(other.getLevel());
        }
        if (other.hasPassive()) {
          setPassive(other.getPassive());
        }
        if (other.hasManaNeeded()) {
          setManaNeeded(other.getManaNeeded());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasPrimaryCharges()) {
          setPrimaryCharges(other.getPrimaryCharges());
        }
        if (other.hasSecondaryCharges()) {
          setSecondaryCharges(other.getSecondaryCharges());
        }
        if (other.hasCasterId()) {
          setCasterId(other.getCasterId());
        }
        if (other.hasCtrlHeld()) {
          setCtrlHeld(other.getCtrlHeld());
        }
        if (other.hasReclaimTime()) {
          setReclaimTime(other.getReclaimTime());
        }
        if (other.hasOwnerEntity()) {
          setOwnerEntity(other.getOwnerEntity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE getType() {
        return type_;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder setType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_ABILITY_PING_TYPE type = 3 [default = ABILITY_PING_READY];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_ABILITY_PING_TYPE.ABILITY_PING_READY;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 cooldown_seconds = 4;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      private int level_ ;
      /**
       * optional uint32 level = 5;
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 level = 5;
       */
      public int getLevel() {
        return level_;
      }
      /**
       * optional uint32 level = 5;
       */
      public Builder setLevel(int value) {
        bitField0_ |= 0x00000010;
        level_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 level = 5;
       */
      public Builder clearLevel() {
        bitField0_ = (bitField0_ & ~0x00000010);
        level_ = 0;
        onChanged();
        return this;
      }

      private boolean passive_ ;
      /**
       * optional bool passive = 6;
       */
      public boolean hasPassive() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool passive = 6;
       */
      public boolean getPassive() {
        return passive_;
      }
      /**
       * optional bool passive = 6;
       */
      public Builder setPassive(boolean value) {
        bitField0_ |= 0x00000020;
        passive_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool passive = 6;
       */
      public Builder clearPassive() {
        bitField0_ = (bitField0_ & ~0x00000020);
        passive_ = false;
        onChanged();
        return this;
      }

      private int manaNeeded_ ;
      /**
       * optional uint32 mana_needed = 7;
       */
      public boolean hasManaNeeded() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public int getManaNeeded() {
        return manaNeeded_;
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public Builder setManaNeeded(int value) {
        bitField0_ |= 0x00000040;
        manaNeeded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 mana_needed = 7;
       */
      public Builder clearManaNeeded() {
        bitField0_ = (bitField0_ & ~0x00000040);
        manaNeeded_ = 0;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional uint32 entity_id = 8;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000080;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_id = 8;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000080);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private int primaryCharges_ ;
      /**
       * optional int32 primary_charges = 9;
       */
      public boolean hasPrimaryCharges() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public int getPrimaryCharges() {
        return primaryCharges_;
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public Builder setPrimaryCharges(int value) {
        bitField0_ |= 0x00000100;
        primaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 primary_charges = 9;
       */
      public Builder clearPrimaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000100);
        primaryCharges_ = 0;
        onChanged();
        return this;
      }

      private int secondaryCharges_ ;
      /**
       * optional int32 secondary_charges = 10;
       */
      public boolean hasSecondaryCharges() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public int getSecondaryCharges() {
        return secondaryCharges_;
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public Builder setSecondaryCharges(int value) {
        bitField0_ |= 0x00000200;
        secondaryCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 secondary_charges = 10;
       */
      public Builder clearSecondaryCharges() {
        bitField0_ = (bitField0_ & ~0x00000200);
        secondaryCharges_ = 0;
        onChanged();
        return this;
      }

      private int casterId_ ;
      /**
       * optional uint32 caster_id = 11;
       */
      public boolean hasCasterId() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public int getCasterId() {
        return casterId_;
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public Builder setCasterId(int value) {
        bitField0_ |= 0x00000400;
        casterId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 caster_id = 11;
       */
      public Builder clearCasterId() {
        bitField0_ = (bitField0_ & ~0x00000400);
        casterId_ = 0;
        onChanged();
        return this;
      }

      private boolean ctrlHeld_ ;
      /**
       * optional bool ctrl_held = 12;
       */
      public boolean hasCtrlHeld() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public boolean getCtrlHeld() {
        return ctrlHeld_;
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public Builder setCtrlHeld(boolean value) {
        bitField0_ |= 0x00000800;
        ctrlHeld_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool ctrl_held = 12;
       */
      public Builder clearCtrlHeld() {
        bitField0_ = (bitField0_ & ~0x00000800);
        ctrlHeld_ = false;
        onChanged();
        return this;
      }

      private float reclaimTime_ ;
      /**
       * optional float reclaim_time = 13;
       */
      public boolean hasReclaimTime() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional float reclaim_time = 13;
       */
      public float getReclaimTime() {
        return reclaimTime_;
      }
      /**
       * optional float reclaim_time = 13;
       */
      public Builder setReclaimTime(float value) {
        bitField0_ |= 0x00001000;
        reclaimTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float reclaim_time = 13;
       */
      public Builder clearReclaimTime() {
        bitField0_ = (bitField0_ & ~0x00001000);
        reclaimTime_ = 0F;
        onChanged();
        return this;
      }

      private int ownerEntity_ = -1;
      /**
       * optional int32 owner_entity = 14 [default = -1];
       */
      public boolean hasOwnerEntity() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional int32 owner_entity = 14 [default = -1];
       */
      public int getOwnerEntity() {
        return ownerEntity_;
      }
      /**
       * optional int32 owner_entity = 14 [default = -1];
       */
      public Builder setOwnerEntity(int value) {
        bitField0_ |= 0x00002000;
        ownerEntity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 owner_entity = 14 [default = -1];
       */
      public Builder clearOwnerEntity() {
        bitField0_ = (bitField0_ & ~0x00002000);
        ownerEntity_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilityPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilityPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilityPing)
  }

  public interface CDOTAUserMsg_TE_UnitAnimationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_UnitAnimation)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional uint32 entity = 1;
     */
    int getEntity();

    /**
     * optional int32 sequence_variant = 2;
     */
    boolean hasSequenceVariant();
    /**
     * optional int32 sequence_variant = 2;
     */
    int getSequenceVariant();

    /**
     * optional float playbackrate = 3;
     */
    boolean hasPlaybackrate();
    /**
     * optional float playbackrate = 3;
     */
    float getPlaybackrate();

    /**
     * optional float castpoint = 4;
     */
    boolean hasCastpoint();
    /**
     * optional float castpoint = 4;
     */
    float getCastpoint();

    /**
     * optional int32 type = 5;
     */
    boolean hasType();
    /**
     * optional int32 type = 5;
     */
    int getType();

    /**
     * optional int32 activity = 6;
     */
    boolean hasActivity();
    /**
     * optional int32 activity = 6;
     */
    int getActivity();

    /**
     * optional float lag_compensation_time = 7;
     */
    boolean hasLagCompensationTime();
    /**
     * optional float lag_compensation_time = 7;
     */
    float getLagCompensationTime();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimation}
   */
  public static final class CDOTAUserMsg_TE_UnitAnimation extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_UnitAnimation)
      CDOTAUserMsg_TE_UnitAnimationOrBuilder {
    // Use CDOTAUserMsg_TE_UnitAnimation.newBuilder() to construct.
    private CDOTAUserMsg_TE_UnitAnimation(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_UnitAnimation(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_UnitAnimation defaultInstance;
    public static CDOTAUserMsg_TE_UnitAnimation getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_UnitAnimation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_UnitAnimation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sequenceVariant_ = input.readInt32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              playbackrate_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              castpoint_ = input.readFloat();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              type_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              activity_ = input.readInt32();
              break;
            }
            case 61: {
              bitField0_ |= 0x00000040;
              lagCompensationTime_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_UnitAnimation parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_UnitAnimation(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional uint32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SEQUENCE_VARIANT_FIELD_NUMBER = 2;
    private int sequenceVariant_;
    /**
     * optional int32 sequence_variant = 2;
     */
    public boolean hasSequenceVariant() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 sequence_variant = 2;
     */
    public int getSequenceVariant() {
      return sequenceVariant_;
    }

    public static final int PLAYBACKRATE_FIELD_NUMBER = 3;
    private float playbackrate_;
    /**
     * optional float playbackrate = 3;
     */
    public boolean hasPlaybackrate() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float playbackrate = 3;
     */
    public float getPlaybackrate() {
      return playbackrate_;
    }

    public static final int CASTPOINT_FIELD_NUMBER = 4;
    private float castpoint_;
    /**
     * optional float castpoint = 4;
     */
    public boolean hasCastpoint() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float castpoint = 4;
     */
    public float getCastpoint() {
      return castpoint_;
    }

    public static final int TYPE_FIELD_NUMBER = 5;
    private int type_;
    /**
     * optional int32 type = 5;
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 type = 5;
     */
    public int getType() {
      return type_;
    }

    public static final int ACTIVITY_FIELD_NUMBER = 6;
    private int activity_;
    /**
     * optional int32 activity = 6;
     */
    public boolean hasActivity() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional int32 activity = 6;
     */
    public int getActivity() {
      return activity_;
    }

    public static final int LAG_COMPENSATION_TIME_FIELD_NUMBER = 7;
    private float lagCompensationTime_;
    /**
     * optional float lag_compensation_time = 7;
     */
    public boolean hasLagCompensationTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float lag_compensation_time = 7;
     */
    public float getLagCompensationTime() {
      return lagCompensationTime_;
    }

    private void initFields() {
      entity_ = 0;
      sequenceVariant_ = 0;
      playbackrate_ = 0F;
      castpoint_ = 0F;
      type_ = 0;
      activity_ = 0;
      lagCompensationTime_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, sequenceVariant_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, playbackrate_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, castpoint_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, activity_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(7, lagCompensationTime_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceVariant_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, playbackrate_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, castpoint_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, type_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, activity_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, lagCompensationTime_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimation}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_UnitAnimation)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceVariant_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playbackrate_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        castpoint_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        activity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        lagCompensationTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sequenceVariant_ = sequenceVariant_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playbackrate_ = playbackrate_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.castpoint_ = castpoint_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.activity_ = activity_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.lagCompensationTime_ = lagCompensationTime_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasSequenceVariant()) {
          setSequenceVariant(other.getSequenceVariant());
        }
        if (other.hasPlaybackrate()) {
          setPlaybackrate(other.getPlaybackrate());
        }
        if (other.hasCastpoint()) {
          setCastpoint(other.getCastpoint());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasActivity()) {
          setActivity(other.getActivity());
        }
        if (other.hasLagCompensationTime()) {
          setLagCompensationTime(other.getLagCompensationTime());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimation) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional uint32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional uint32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private int sequenceVariant_ ;
      /**
       * optional int32 sequence_variant = 2;
       */
      public boolean hasSequenceVariant() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 sequence_variant = 2;
       */
      public int getSequenceVariant() {
        return sequenceVariant_;
      }
      /**
       * optional int32 sequence_variant = 2;
       */
      public Builder setSequenceVariant(int value) {
        bitField0_ |= 0x00000002;
        sequenceVariant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_variant = 2;
       */
      public Builder clearSequenceVariant() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sequenceVariant_ = 0;
        onChanged();
        return this;
      }

      private float playbackrate_ ;
      /**
       * optional float playbackrate = 3;
       */
      public boolean hasPlaybackrate() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float playbackrate = 3;
       */
      public float getPlaybackrate() {
        return playbackrate_;
      }
      /**
       * optional float playbackrate = 3;
       */
      public Builder setPlaybackrate(float value) {
        bitField0_ |= 0x00000004;
        playbackrate_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float playbackrate = 3;
       */
      public Builder clearPlaybackrate() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playbackrate_ = 0F;
        onChanged();
        return this;
      }

      private float castpoint_ ;
      /**
       * optional float castpoint = 4;
       */
      public boolean hasCastpoint() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float castpoint = 4;
       */
      public float getCastpoint() {
        return castpoint_;
      }
      /**
       * optional float castpoint = 4;
       */
      public Builder setCastpoint(float value) {
        bitField0_ |= 0x00000008;
        castpoint_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float castpoint = 4;
       */
      public Builder clearCastpoint() {
        bitField0_ = (bitField0_ & ~0x00000008);
        castpoint_ = 0F;
        onChanged();
        return this;
      }

      private int type_ ;
      /**
       * optional int32 type = 5;
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional int32 type = 5;
       */
      public int getType() {
        return type_;
      }
      /**
       * optional int32 type = 5;
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000010;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 type = 5;
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        type_ = 0;
        onChanged();
        return this;
      }

      private int activity_ ;
      /**
       * optional int32 activity = 6;
       */
      public boolean hasActivity() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 activity = 6;
       */
      public int getActivity() {
        return activity_;
      }
      /**
       * optional int32 activity = 6;
       */
      public Builder setActivity(int value) {
        bitField0_ |= 0x00000020;
        activity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 activity = 6;
       */
      public Builder clearActivity() {
        bitField0_ = (bitField0_ & ~0x00000020);
        activity_ = 0;
        onChanged();
        return this;
      }

      private float lagCompensationTime_ ;
      /**
       * optional float lag_compensation_time = 7;
       */
      public boolean hasLagCompensationTime() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional float lag_compensation_time = 7;
       */
      public float getLagCompensationTime() {
        return lagCompensationTime_;
      }
      /**
       * optional float lag_compensation_time = 7;
       */
      public Builder setLagCompensationTime(float value) {
        bitField0_ |= 0x00000040;
        lagCompensationTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float lag_compensation_time = 7;
       */
      public Builder clearLagCompensationTime() {
        bitField0_ = (bitField0_ & ~0x00000040);
        lagCompensationTime_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_UnitAnimation)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_UnitAnimation(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_UnitAnimation)
  }

  public interface CDOTAUserMsg_TE_UnitAnimationEndOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TE_UnitAnimationEnd)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 entity = 1;
     */
    boolean hasEntity();
    /**
     * optional int32 entity = 1;
     */
    int getEntity();

    /**
     * optional bool snap = 2;
     */
    boolean hasSnap();
    /**
     * optional bool snap = 2;
     */
    boolean getSnap();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimationEnd}
   */
  public static final class CDOTAUserMsg_TE_UnitAnimationEnd extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TE_UnitAnimationEnd)
      CDOTAUserMsg_TE_UnitAnimationEndOrBuilder {
    // Use CDOTAUserMsg_TE_UnitAnimationEnd.newBuilder() to construct.
    private CDOTAUserMsg_TE_UnitAnimationEnd(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TE_UnitAnimationEnd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TE_UnitAnimationEnd defaultInstance;
    public static CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TE_UnitAnimationEnd(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              entity_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              snap_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TE_UnitAnimationEnd parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TE_UnitAnimationEnd(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ENTITY_FIELD_NUMBER = 1;
    private int entity_;
    /**
     * optional int32 entity = 1;
     */
    public boolean hasEntity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 entity = 1;
     */
    public int getEntity() {
      return entity_;
    }

    public static final int SNAP_FIELD_NUMBER = 2;
    private boolean snap_;
    /**
     * optional bool snap = 2;
     */
    public boolean hasSnap() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool snap = 2;
     */
    public boolean getSnap() {
      return snap_;
    }

    private void initFields() {
      entity_ = 0;
      snap_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, snap_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, entity_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, snap_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TE_UnitAnimationEnd}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TE_UnitAnimationEnd)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEndOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        entity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        snap_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.entity_ = entity_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.snap_ = snap_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd.getDefaultInstance()) return this;
        if (other.hasEntity()) {
          setEntity(other.getEntity());
        }
        if (other.hasSnap()) {
          setSnap(other.getSnap());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TE_UnitAnimationEnd) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int entity_ ;
      /**
       * optional int32 entity = 1;
       */
      public boolean hasEntity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 entity = 1;
       */
      public int getEntity() {
        return entity_;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder setEntity(int value) {
        bitField0_ |= 0x00000001;
        entity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 entity = 1;
       */
      public Builder clearEntity() {
        bitField0_ = (bitField0_ & ~0x00000001);
        entity_ = 0;
        onChanged();
        return this;
      }

      private boolean snap_ ;
      /**
       * optional bool snap = 2;
       */
      public boolean hasSnap() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool snap = 2;
       */
      public boolean getSnap() {
        return snap_;
      }
      /**
       * optional bool snap = 2;
       */
      public Builder setSnap(boolean value) {
        bitField0_ |= 0x00000002;
        snap_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool snap = 2;
       */
      public Builder clearSnap() {
        bitField0_ = (bitField0_ & ~0x00000002);
        snap_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TE_UnitAnimationEnd)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TE_UnitAnimationEnd(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TE_UnitAnimationEnd)
  }

  public interface CDOTAUserMsg_PlayerMMROrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PlayerMMR)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    java.util.List getMmrList();
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    int getMmrCount();
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    int getMmr(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PlayerMMR}
   */
  public static final class CDOTAUserMsg_PlayerMMR extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PlayerMMR)
      CDOTAUserMsg_PlayerMMROrBuilder {
    // Use CDOTAUserMsg_PlayerMMR.newBuilder() to construct.
    private CDOTAUserMsg_PlayerMMR(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PlayerMMR(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PlayerMMR defaultInstance;
    public static CDOTAUserMsg_PlayerMMR getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PlayerMMR getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PlayerMMR(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                mmr_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              mmr_.add(input.readSInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                mmr_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                mmr_.add(input.readSInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = java.util.Collections.unmodifiableList(mmr_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PlayerMMR parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PlayerMMR(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int MMR_FIELD_NUMBER = 1;
    private java.util.List mmr_;
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public java.util.List
        getMmrList() {
      return mmr_;
    }
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public int getMmrCount() {
      return mmr_.size();
    }
    /**
     * repeated sint32 mmr = 1 [packed = true];
     */
    public int getMmr(int index) {
      return mmr_.get(index);
    }
    private int mmrMemoizedSerializedSize = -1;

    private void initFields() {
      mmr_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (getMmrList().size() > 0) {
        output.writeRawVarint32(10);
        output.writeRawVarint32(mmrMemoizedSerializedSize);
      }
      for (int i = 0; i < mmr_.size(); i++) {
        output.writeSInt32NoTag(mmr_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < mmr_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeSInt32SizeNoTag(mmr_.get(i));
        }
        size += dataSize;
        if (!getMmrList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        mmrMemoizedSerializedSize = dataSize;
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PlayerMMR}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PlayerMMR)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMROrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        mmr_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = java.util.Collections.unmodifiableList(mmr_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.mmr_ = mmr_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR.getDefaultInstance()) return this;
        if (!other.mmr_.isEmpty()) {
          if (mmr_.isEmpty()) {
            mmr_ = other.mmr_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMmrIsMutable();
            mmr_.addAll(other.mmr_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerMMR) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List mmr_ = java.util.Collections.emptyList();
      private void ensureMmrIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          mmr_ = new java.util.ArrayList(mmr_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public java.util.List
          getMmrList() {
        return java.util.Collections.unmodifiableList(mmr_);
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public int getMmrCount() {
        return mmr_.size();
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public int getMmr(int index) {
        return mmr_.get(index);
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder setMmr(
          int index, int value) {
        ensureMmrIsMutable();
        mmr_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder addMmr(int value) {
        ensureMmrIsMutable();
        mmr_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder addAllMmr(
          java.lang.Iterable values) {
        ensureMmrIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, mmr_);
        onChanged();
        return this;
      }
      /**
       * repeated sint32 mmr = 1 [packed = true];
       */
      public Builder clearMmr() {
        mmr_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PlayerMMR)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PlayerMMR(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PlayerMMR)
  }

  public interface CDOTAUserMsg_AbilityStealOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AbilitySteal)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 ability_id = 2;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 2;
     */
    int getAbilityId();

    /**
     * optional uint32 ability_level = 3;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 3;
     */
    int getAbilityLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
   */
  public static final class CDOTAUserMsg_AbilitySteal extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AbilitySteal)
      CDOTAUserMsg_AbilityStealOrBuilder {
    // Use CDOTAUserMsg_AbilitySteal.newBuilder() to construct.
    private CDOTAUserMsg_AbilitySteal(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AbilitySteal(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AbilitySteal defaultInstance;
    public static CDOTAUserMsg_AbilitySteal getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AbilitySteal(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              abilityId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              abilityLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AbilitySteal parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AbilitySteal(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 2;
    private int abilityId_;
    /**
     * optional int32 ability_id = 2;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 ability_id = 2;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int ABILITY_LEVEL_FIELD_NUMBER = 3;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 3;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 ability_level = 3;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    private void initFields() {
      playerId_ = 0;
      abilityId_ = 0;
      abilityLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, abilityLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, abilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, abilityLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AbilitySteal}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AbilitySteal)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilityStealOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.abilityLevel_ = abilityLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AbilitySteal) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 2;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 ability_id = 2;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 2;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000002;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 2;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 3;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00000004;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 3;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AbilitySteal)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AbilitySteal(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AbilitySteal)
  }

  public interface CDOTAUserMsg_StatsHeroLookupOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroLookup)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 hero_id = 2;
     */
    boolean hasHeroId();
    /**
     * optional int32 hero_id = 2;
     */
    int getHeroId();

    /**
     * optional string hero_name = 3;
     */
    boolean hasHeroName();
    /**
     * optional string hero_name = 3;
     */
    java.lang.String getHeroName();
    /**
     * optional string hero_name = 3;
     */
    com.google.protobuf.ByteString
        getHeroNameBytes();

    /**
     * optional string persona = 4;
     */
    boolean hasPersona();
    /**
     * optional string persona = 4;
     */
    java.lang.String getPersona();
    /**
     * optional string persona = 4;
     */
    com.google.protobuf.ByteString
        getPersonaBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
   */
  public static final class CDOTAUserMsg_StatsHeroLookup extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroLookup)
      CDOTAUserMsg_StatsHeroLookupOrBuilder {
    // Use CDOTAUserMsg_StatsHeroLookup.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroLookup(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroLookup(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroLookup defaultInstance;
    public static CDOTAUserMsg_StatsHeroLookup getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroLookup(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              heroId_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              heroName_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              persona_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroLookup parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroLookup(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int HERO_ID_FIELD_NUMBER = 2;
    private int heroId_;
    /**
     * optional int32 hero_id = 2;
     */
    public boolean hasHeroId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 hero_id = 2;
     */
    public int getHeroId() {
      return heroId_;
    }

    public static final int HERO_NAME_FIELD_NUMBER = 3;
    private java.lang.Object heroName_;
    /**
     * optional string hero_name = 3;
     */
    public boolean hasHeroName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string hero_name = 3;
     */
    public java.lang.String getHeroName() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          heroName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string hero_name = 3;
     */
    public com.google.protobuf.ByteString
        getHeroNameBytes() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        heroName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PERSONA_FIELD_NUMBER = 4;
    private java.lang.Object persona_;
    /**
     * optional string persona = 4;
     */
    public boolean hasPersona() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string persona = 4;
     */
    public java.lang.String getPersona() {
      java.lang.Object ref = persona_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          persona_ = s;
        }
        return s;
      }
    }
    /**
     * optional string persona = 4;
     */
    public com.google.protobuf.ByteString
        getPersonaBytes() {
      java.lang.Object ref = persona_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        persona_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      heroId_ = 0;
      heroName_ = "";
      persona_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, heroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getPersonaBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, heroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getPersonaBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroLookup}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroLookup)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookupOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        heroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        heroName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        persona_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.heroId_ = heroId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.heroName_ = heroName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.persona_ = persona_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasHeroId()) {
          setHeroId(other.getHeroId());
        }
        if (other.hasHeroName()) {
          bitField0_ |= 0x00000004;
          heroName_ = other.heroName_;
          onChanged();
        }
        if (other.hasPersona()) {
          bitField0_ |= 0x00000008;
          persona_ = other.persona_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroLookup) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int heroId_ ;
      /**
       * optional int32 hero_id = 2;
       */
      public boolean hasHeroId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 hero_id = 2;
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder setHeroId(int value) {
        bitField0_ |= 0x00000002;
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hero_id = 2;
       */
      public Builder clearHeroId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        heroId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object heroName_ = "";
      /**
       * optional string hero_name = 3;
       */
      public boolean hasHeroName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string hero_name = 3;
       */
      public java.lang.String getHeroName() {
        java.lang.Object ref = heroName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            heroName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string hero_name = 3;
       */
      public com.google.protobuf.ByteString
          getHeroNameBytes() {
        java.lang.Object ref = heroName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          heroName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder setHeroName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        heroName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder clearHeroName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        heroName_ = getDefaultInstance().getHeroName();
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 3;
       */
      public Builder setHeroNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        heroName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object persona_ = "";
      /**
       * optional string persona = 4;
       */
      public boolean hasPersona() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string persona = 4;
       */
      public java.lang.String getPersona() {
        java.lang.Object ref = persona_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            persona_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string persona = 4;
       */
      public com.google.protobuf.ByteString
          getPersonaBytes() {
        java.lang.Object ref = persona_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          persona_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string persona = 4;
       */
      public Builder setPersona(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        persona_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string persona = 4;
       */
      public Builder clearPersona() {
        bitField0_ = (bitField0_ & ~0x00000008);
        persona_ = getDefaultInstance().getPersona();
        onChanged();
        return this;
      }
      /**
       * optional string persona = 4;
       */
      public Builder setPersonaBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        persona_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroLookup)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroLookup(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroLookup)
  }

  public interface CDOTAUserMsg_StatsHeroPositionInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroPositionInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional float average_position = 1;
     */
    boolean hasAveragePosition();
    /**
     * optional float average_position = 1;
     */
    float getAveragePosition();

    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    java.util.List 
        getPositionDetailsList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index);
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    int getPositionDetailsCount();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    java.util.List 
        getPositionDetailsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo}
   */
  public static final class CDOTAUserMsg_StatsHeroPositionInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroPositionInfo)
      CDOTAUserMsg_StatsHeroPositionInfoOrBuilder {
    // Use CDOTAUserMsg_StatsHeroPositionInfo.newBuilder() to construct.
    private CDOTAUserMsg_StatsHeroPositionInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsHeroPositionInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsHeroPositionInfo defaultInstance;
    public static CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsHeroPositionInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              averagePosition_ = input.readFloat();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                positionDetails_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              positionDetails_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          positionDetails_ = java.util.Collections.unmodifiableList(positionDetails_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsHeroPositionInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsHeroPositionInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PositionPairOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      boolean hasPositionCategory();
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY getPositionCategory();

      /**
       * optional uint32 position_count = 2;
       */
      boolean hasPositionCount();
      /**
       * optional uint32 position_count = 2;
       */
      int getPositionCount();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo.PositionPair}
     */
    public static final class PositionPair extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
        PositionPairOrBuilder {
      // Use PositionPair.newBuilder() to construct.
      private PositionPair(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PositionPair(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PositionPair defaultInstance;
      public static PositionPair getDefaultInstance() {
        return defaultInstance;
      }

      public PositionPair getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PositionPair(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                int rawValue = input.readEnum();
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY.valueOf(rawValue);
                if (value == null) {
                  unknownFields.mergeVarintField(1, rawValue);
                } else {
                  bitField0_ |= 0x00000001;
                  positionCategory_ = value;
                }
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                positionCount_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PositionPair parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PositionPair(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int POSITION_CATEGORY_FIELD_NUMBER = 1;
      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY positionCategory_;
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      public boolean hasPositionCategory() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY getPositionCategory() {
        return positionCategory_;
      }

      public static final int POSITION_COUNT_FIELD_NUMBER = 2;
      private int positionCount_;
      /**
       * optional uint32 position_count = 2;
       */
      public boolean hasPositionCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 position_count = 2;
       */
      public int getPositionCount() {
        return positionCount_;
      }

      private void initFields() {
        positionCategory_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
        positionCount_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeEnum(1, positionCategory_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, positionCount_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, positionCategory_.getNumber());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, positionCount_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo.PositionPair}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          positionCategory_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
          bitField0_ = (bitField0_ & ~0x00000001);
          positionCount_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.positionCategory_ = positionCategory_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.positionCount_ = positionCount_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance()) return this;
          if (other.hasPositionCategory()) {
            setPositionCategory(other.getPositionCategory());
          }
          if (other.hasPositionCount()) {
            setPositionCount(other.getPositionCount());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY positionCategory_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public boolean hasPositionCategory() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY getPositionCategory() {
          return positionCategory_;
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public Builder setPositionCategory(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          positionCategory_ = value;
          onChanged();
          return this;
        }
        /**
         * optional .DOTA_POSITION_CATEGORY position_category = 1 [default = DOTA_POSITION_NONE];
         */
        public Builder clearPositionCategory() {
          bitField0_ = (bitField0_ & ~0x00000001);
          positionCategory_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_POSITION_CATEGORY.DOTA_POSITION_NONE;
          onChanged();
          return this;
        }

        private int positionCount_ ;
        /**
         * optional uint32 position_count = 2;
         */
        public boolean hasPositionCount() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 position_count = 2;
         */
        public int getPositionCount() {
          return positionCount_;
        }
        /**
         * optional uint32 position_count = 2;
         */
        public Builder setPositionCount(int value) {
          bitField0_ |= 0x00000002;
          positionCount_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 position_count = 2;
         */
        public Builder clearPositionCount() {
          bitField0_ = (bitField0_ & ~0x00000002);
          positionCount_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
      }

      static {
        defaultInstance = new PositionPair(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroPositionInfo.PositionPair)
    }

    private int bitField0_;
    public static final int AVERAGE_POSITION_FIELD_NUMBER = 1;
    private float averagePosition_;
    /**
     * optional float average_position = 1;
     */
    public boolean hasAveragePosition() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional float average_position = 1;
     */
    public float getAveragePosition() {
      return averagePosition_;
    }

    public static final int POSITION_DETAILS_FIELD_NUMBER = 2;
    private java.util.List positionDetails_;
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public java.util.List getPositionDetailsList() {
      return positionDetails_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public java.util.List 
        getPositionDetailsOrBuilderList() {
      return positionDetails_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public int getPositionDetailsCount() {
      return positionDetails_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index) {
      return positionDetails_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
        int index) {
      return positionDetails_.get(index);
    }

    private void initFields() {
      averagePosition_ = 0F;
      positionDetails_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFloat(1, averagePosition_);
      }
      for (int i = 0; i < positionDetails_.size(); i++) {
        output.writeMessage(2, positionDetails_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, averagePosition_);
      }
      for (int i = 0; i < positionDetails_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, positionDetails_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsHeroPositionInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsHeroPositionInfo)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPositionDetailsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        averagePosition_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (positionDetailsBuilder_ == null) {
          positionDetails_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          positionDetailsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.averagePosition_ = averagePosition_;
        if (positionDetailsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            positionDetails_ = java.util.Collections.unmodifiableList(positionDetails_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.positionDetails_ = positionDetails_;
        } else {
          result.positionDetails_ = positionDetailsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.getDefaultInstance()) return this;
        if (other.hasAveragePosition()) {
          setAveragePosition(other.getAveragePosition());
        }
        if (positionDetailsBuilder_ == null) {
          if (!other.positionDetails_.isEmpty()) {
            if (positionDetails_.isEmpty()) {
              positionDetails_ = other.positionDetails_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePositionDetailsIsMutable();
              positionDetails_.addAll(other.positionDetails_);
            }
            onChanged();
          }
        } else {
          if (!other.positionDetails_.isEmpty()) {
            if (positionDetailsBuilder_.isEmpty()) {
              positionDetailsBuilder_.dispose();
              positionDetailsBuilder_ = null;
              positionDetails_ = other.positionDetails_;
              bitField0_ = (bitField0_ & ~0x00000002);
              positionDetailsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPositionDetailsFieldBuilder() : null;
            } else {
              positionDetailsBuilder_.addAllMessages(other.positionDetails_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float averagePosition_ ;
      /**
       * optional float average_position = 1;
       */
      public boolean hasAveragePosition() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float average_position = 1;
       */
      public float getAveragePosition() {
        return averagePosition_;
      }
      /**
       * optional float average_position = 1;
       */
      public Builder setAveragePosition(float value) {
        bitField0_ |= 0x00000001;
        averagePosition_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float average_position = 1;
       */
      public Builder clearAveragePosition() {
        bitField0_ = (bitField0_ & ~0x00000001);
        averagePosition_ = 0F;
        onChanged();
        return this;
      }

      private java.util.List positionDetails_ =
        java.util.Collections.emptyList();
      private void ensurePositionDetailsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          positionDetails_ = new java.util.ArrayList(positionDetails_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder> positionDetailsBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List getPositionDetailsList() {
        if (positionDetailsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(positionDetails_);
        } else {
          return positionDetailsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public int getPositionDetailsCount() {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.size();
        } else {
          return positionDetailsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair getPositionDetails(int index) {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.get(index);
        } else {
          return positionDetailsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder setPositionDetails(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.set(index, value);
          onChanged();
        } else {
          positionDetailsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder setPositionDetails(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.set(index, builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.add(value);
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair value) {
        if (positionDetailsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePositionDetailsIsMutable();
          positionDetails_.add(index, value);
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.add(builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addPositionDetails(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder builderForValue) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.add(index, builderForValue.build());
          onChanged();
        } else {
          positionDetailsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder addAllPositionDetails(
          java.lang.Iterable values) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, positionDetails_);
          onChanged();
        } else {
          positionDetailsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder clearPositionDetails() {
        if (positionDetailsBuilder_ == null) {
          positionDetails_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          positionDetailsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public Builder removePositionDetails(int index) {
        if (positionDetailsBuilder_ == null) {
          ensurePositionDetailsIsMutable();
          positionDetails_.remove(index);
          onChanged();
        } else {
          positionDetailsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder getPositionDetailsBuilder(
          int index) {
        return getPositionDetailsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder getPositionDetailsOrBuilder(
          int index) {
        if (positionDetailsBuilder_ == null) {
          return positionDetails_.get(index);  } else {
          return positionDetailsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List 
           getPositionDetailsOrBuilderList() {
        if (positionDetailsBuilder_ != null) {
          return positionDetailsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(positionDetails_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder addPositionDetailsBuilder() {
        return getPositionDetailsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder addPositionDetailsBuilder(
          int index) {
        return getPositionDetailsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsHeroPositionInfo.PositionPair position_details = 2;
       */
      public java.util.List 
           getPositionDetailsBuilderList() {
        return getPositionDetailsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder> 
          getPositionDetailsFieldBuilder() {
        if (positionDetailsBuilder_ == null) {
          positionDetailsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPair.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsHeroPositionInfo.PositionPairOrBuilder>(
                  positionDetails_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          positionDetails_ = null;
        }
        return positionDetailsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsHeroPositionInfo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsHeroPositionInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsHeroPositionInfo)
  }

  public interface CDOTAUserMsg_StatsPlayerKillShareOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsPlayerKillShare)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional float kill_share_percent = 2;
     */
    boolean hasKillSharePercent();
    /**
     * optional float kill_share_percent = 2;
     */
    float getKillSharePercent();

    /**
     * optional float player_loc_x = 3;
     */
    boolean hasPlayerLocX();
    /**
     * optional float player_loc_x = 3;
     */
    float getPlayerLocX();

    /**
     * optional float player_loc_y = 4;
     */
    boolean hasPlayerLocY();
    /**
     * optional float player_loc_y = 4;
     */
    float getPlayerLocY();

    /**
     * optional float health_percent = 5;
     */
    boolean hasHealthPercent();
    /**
     * optional float health_percent = 5;
     */
    float getHealthPercent();

    /**
     * optional float mana_percent = 6;
     */
    boolean hasManaPercent();
    /**
     * optional float mana_percent = 6;
     */
    float getManaPercent();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
   */
  public static final class CDOTAUserMsg_StatsPlayerKillShare extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsPlayerKillShare)
      CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
    // Use CDOTAUserMsg_StatsPlayerKillShare.newBuilder() to construct.
    private CDOTAUserMsg_StatsPlayerKillShare(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsPlayerKillShare(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsPlayerKillShare defaultInstance;
    public static CDOTAUserMsg_StatsPlayerKillShare getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsPlayerKillShare(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              killSharePercent_ = input.readFloat();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              playerLocX_ = input.readFloat();
              break;
            }
            case 37: {
              bitField0_ |= 0x00000008;
              playerLocY_ = input.readFloat();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              healthPercent_ = input.readFloat();
              break;
            }
            case 53: {
              bitField0_ |= 0x00000020;
              manaPercent_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsPlayerKillShare parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsPlayerKillShare(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int KILL_SHARE_PERCENT_FIELD_NUMBER = 2;
    private float killSharePercent_;
    /**
     * optional float kill_share_percent = 2;
     */
    public boolean hasKillSharePercent() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional float kill_share_percent = 2;
     */
    public float getKillSharePercent() {
      return killSharePercent_;
    }

    public static final int PLAYER_LOC_X_FIELD_NUMBER = 3;
    private float playerLocX_;
    /**
     * optional float player_loc_x = 3;
     */
    public boolean hasPlayerLocX() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float player_loc_x = 3;
     */
    public float getPlayerLocX() {
      return playerLocX_;
    }

    public static final int PLAYER_LOC_Y_FIELD_NUMBER = 4;
    private float playerLocY_;
    /**
     * optional float player_loc_y = 4;
     */
    public boolean hasPlayerLocY() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float player_loc_y = 4;
     */
    public float getPlayerLocY() {
      return playerLocY_;
    }

    public static final int HEALTH_PERCENT_FIELD_NUMBER = 5;
    private float healthPercent_;
    /**
     * optional float health_percent = 5;
     */
    public boolean hasHealthPercent() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional float health_percent = 5;
     */
    public float getHealthPercent() {
      return healthPercent_;
    }

    public static final int MANA_PERCENT_FIELD_NUMBER = 6;
    private float manaPercent_;
    /**
     * optional float mana_percent = 6;
     */
    public boolean hasManaPercent() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float mana_percent = 6;
     */
    public float getManaPercent() {
      return manaPercent_;
    }

    private void initFields() {
      playerId_ = 0;
      killSharePercent_ = 0F;
      playerLocX_ = 0F;
      playerLocY_ = 0F;
      healthPercent_ = 0F;
      manaPercent_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFloat(2, killSharePercent_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, playerLocX_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(4, playerLocY_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, healthPercent_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(6, manaPercent_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, killSharePercent_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, playerLocX_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, playerLocY_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, healthPercent_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, manaPercent_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsPlayerKillShare}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsPlayerKillShare)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        killSharePercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000002);
        playerLocX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        playerLocY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000008);
        healthPercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        manaPercent_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.killSharePercent_ = killSharePercent_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playerLocX_ = playerLocX_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playerLocY_ = playerLocY_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.healthPercent_ = healthPercent_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.manaPercent_ = manaPercent_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasKillSharePercent()) {
          setKillSharePercent(other.getKillSharePercent());
        }
        if (other.hasPlayerLocX()) {
          setPlayerLocX(other.getPlayerLocX());
        }
        if (other.hasPlayerLocY()) {
          setPlayerLocY(other.getPlayerLocY());
        }
        if (other.hasHealthPercent()) {
          setHealthPercent(other.getHealthPercent());
        }
        if (other.hasManaPercent()) {
          setManaPercent(other.getManaPercent());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private float killSharePercent_ ;
      /**
       * optional float kill_share_percent = 2;
       */
      public boolean hasKillSharePercent() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public float getKillSharePercent() {
        return killSharePercent_;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder setKillSharePercent(float value) {
        bitField0_ |= 0x00000002;
        killSharePercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float kill_share_percent = 2;
       */
      public Builder clearKillSharePercent() {
        bitField0_ = (bitField0_ & ~0x00000002);
        killSharePercent_ = 0F;
        onChanged();
        return this;
      }

      private float playerLocX_ ;
      /**
       * optional float player_loc_x = 3;
       */
      public boolean hasPlayerLocX() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float player_loc_x = 3;
       */
      public float getPlayerLocX() {
        return playerLocX_;
      }
      /**
       * optional float player_loc_x = 3;
       */
      public Builder setPlayerLocX(float value) {
        bitField0_ |= 0x00000004;
        playerLocX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float player_loc_x = 3;
       */
      public Builder clearPlayerLocX() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playerLocX_ = 0F;
        onChanged();
        return this;
      }

      private float playerLocY_ ;
      /**
       * optional float player_loc_y = 4;
       */
      public boolean hasPlayerLocY() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional float player_loc_y = 4;
       */
      public float getPlayerLocY() {
        return playerLocY_;
      }
      /**
       * optional float player_loc_y = 4;
       */
      public Builder setPlayerLocY(float value) {
        bitField0_ |= 0x00000008;
        playerLocY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float player_loc_y = 4;
       */
      public Builder clearPlayerLocY() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playerLocY_ = 0F;
        onChanged();
        return this;
      }

      private float healthPercent_ ;
      /**
       * optional float health_percent = 5;
       */
      public boolean hasHealthPercent() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float health_percent = 5;
       */
      public float getHealthPercent() {
        return healthPercent_;
      }
      /**
       * optional float health_percent = 5;
       */
      public Builder setHealthPercent(float value) {
        bitField0_ |= 0x00000010;
        healthPercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float health_percent = 5;
       */
      public Builder clearHealthPercent() {
        bitField0_ = (bitField0_ & ~0x00000010);
        healthPercent_ = 0F;
        onChanged();
        return this;
      }

      private float manaPercent_ ;
      /**
       * optional float mana_percent = 6;
       */
      public boolean hasManaPercent() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional float mana_percent = 6;
       */
      public float getManaPercent() {
        return manaPercent_;
      }
      /**
       * optional float mana_percent = 6;
       */
      public Builder setManaPercent(float value) {
        bitField0_ |= 0x00000020;
        manaPercent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float mana_percent = 6;
       */
      public Builder clearManaPercent() {
        bitField0_ = (bitField0_ & ~0x00000020);
        manaPercent_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsPlayerKillShare)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsPlayerKillShare(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsPlayerKillShare)
  }

  public interface CDOTAUserMsg_StatsKillDetailsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_StatsKillDetails)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 victim_id = 1;
     */
    boolean hasVictimId();
    /**
     * optional int32 victim_id = 1;
     */
    int getVictimId();

    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index);
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    int getKillSharesCount();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    java.util.List 
        getKillSharesOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index);

    /**
     * optional uint32 damage_to_kill = 3;
     */
    boolean hasDamageToKill();
    /**
     * optional uint32 damage_to_kill = 3;
     */
    int getDamageToKill();

    /**
     * optional uint32 effective_health = 4;
     */
    boolean hasEffectiveHealth();
    /**
     * optional uint32 effective_health = 4;
     */
    int getEffectiveHealth();

    /**
     * optional float death_time = 5;
     */
    boolean hasDeathTime();
    /**
     * optional float death_time = 5;
     */
    float getDeathTime();

    /**
     * optional int32 killer_id = 6;
     */
    boolean hasKillerId();
    /**
     * optional int32 killer_id = 6;
     */
    int getKillerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
   */
  public static final class CDOTAUserMsg_StatsKillDetails extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_StatsKillDetails)
      CDOTAUserMsg_StatsKillDetailsOrBuilder {
    // Use CDOTAUserMsg_StatsKillDetails.newBuilder() to construct.
    private CDOTAUserMsg_StatsKillDetails(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_StatsKillDetails(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_StatsKillDetails defaultInstance;
    public static CDOTAUserMsg_StatsKillDetails getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_StatsKillDetails(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              victimId_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                killShares_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              killShares_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              damageToKill_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              effectiveHealth_ = input.readUInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000008;
              deathTime_ = input.readFloat();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              killerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = java.util.Collections.unmodifiableList(killShares_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_StatsKillDetails parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_StatsKillDetails(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int VICTIM_ID_FIELD_NUMBER = 1;
    private int victimId_;
    /**
     * optional int32 victim_id = 1;
     */
    public boolean hasVictimId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 victim_id = 1;
     */
    public int getVictimId() {
      return victimId_;
    }

    public static final int KILL_SHARES_FIELD_NUMBER = 2;
    private java.util.List killShares_;
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List getKillSharesList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public java.util.List 
        getKillSharesOrBuilderList() {
      return killShares_;
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public int getKillSharesCount() {
      return killShares_.size();
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
      return killShares_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
        int index) {
      return killShares_.get(index);
    }

    public static final int DAMAGE_TO_KILL_FIELD_NUMBER = 3;
    private int damageToKill_;
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public boolean hasDamageToKill() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 damage_to_kill = 3;
     */
    public int getDamageToKill() {
      return damageToKill_;
    }

    public static final int EFFECTIVE_HEALTH_FIELD_NUMBER = 4;
    private int effectiveHealth_;
    /**
     * optional uint32 effective_health = 4;
     */
    public boolean hasEffectiveHealth() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 effective_health = 4;
     */
    public int getEffectiveHealth() {
      return effectiveHealth_;
    }

    public static final int DEATH_TIME_FIELD_NUMBER = 5;
    private float deathTime_;
    /**
     * optional float death_time = 5;
     */
    public boolean hasDeathTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional float death_time = 5;
     */
    public float getDeathTime() {
      return deathTime_;
    }

    public static final int KILLER_ID_FIELD_NUMBER = 6;
    private int killerId_;
    /**
     * optional int32 killer_id = 6;
     */
    public boolean hasKillerId() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 killer_id = 6;
     */
    public int getKillerId() {
      return killerId_;
    }

    private void initFields() {
      victimId_ = 0;
      killShares_ = java.util.Collections.emptyList();
      damageToKill_ = 0;
      effectiveHealth_ = 0;
      deathTime_ = 0F;
      killerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        output.writeMessage(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeFloat(5, deathTime_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, killerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, victimId_);
      }
      for (int i = 0; i < killShares_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, killShares_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, damageToKill_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, effectiveHealth_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, deathTime_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, killerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_StatsKillDetails}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_StatsKillDetails)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetailsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKillSharesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        victimId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          killSharesBuilder_.clear();
        }
        damageToKill_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        effectiveHealth_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        deathTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        killerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.victimId_ = victimId_;
        if (killSharesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            killShares_ = java.util.Collections.unmodifiableList(killShares_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.killShares_ = killShares_;
        } else {
          result.killShares_ = killSharesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.damageToKill_ = damageToKill_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.effectiveHealth_ = effectiveHealth_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.deathTime_ = deathTime_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.killerId_ = killerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails.getDefaultInstance()) return this;
        if (other.hasVictimId()) {
          setVictimId(other.getVictimId());
        }
        if (killSharesBuilder_ == null) {
          if (!other.killShares_.isEmpty()) {
            if (killShares_.isEmpty()) {
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureKillSharesIsMutable();
              killShares_.addAll(other.killShares_);
            }
            onChanged();
          }
        } else {
          if (!other.killShares_.isEmpty()) {
            if (killSharesBuilder_.isEmpty()) {
              killSharesBuilder_.dispose();
              killSharesBuilder_ = null;
              killShares_ = other.killShares_;
              bitField0_ = (bitField0_ & ~0x00000002);
              killSharesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getKillSharesFieldBuilder() : null;
            } else {
              killSharesBuilder_.addAllMessages(other.killShares_);
            }
          }
        }
        if (other.hasDamageToKill()) {
          setDamageToKill(other.getDamageToKill());
        }
        if (other.hasEffectiveHealth()) {
          setEffectiveHealth(other.getEffectiveHealth());
        }
        if (other.hasDeathTime()) {
          setDeathTime(other.getDeathTime());
        }
        if (other.hasKillerId()) {
          setKillerId(other.getKillerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsKillDetails) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int victimId_ ;
      /**
       * optional int32 victim_id = 1;
       */
      public boolean hasVictimId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 victim_id = 1;
       */
      public int getVictimId() {
        return victimId_;
      }
      /**
       * optional int32 victim_id = 1;
       */
      public Builder setVictimId(int value) {
        bitField0_ |= 0x00000001;
        victimId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 victim_id = 1;
       */
      public Builder clearVictimId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        victimId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List killShares_ =
        java.util.Collections.emptyList();
      private void ensureKillSharesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          killShares_ = new java.util.ArrayList(killShares_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> killSharesBuilder_;

      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List getKillSharesList() {
        if (killSharesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(killShares_);
        } else {
          return killSharesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public int getKillSharesCount() {
        if (killSharesBuilder_ == null) {
          return killShares_.size();
        } else {
          return killSharesBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare getKillShares(int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);
        } else {
          return killSharesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.set(index, value);
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder setKillShares(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.set(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare value) {
        if (killSharesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureKillSharesIsMutable();
          killShares_.add(index, value);
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addKillShares(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder builderForValue) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.add(index, builderForValue.build());
          onChanged();
        } else {
          killSharesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder addAllKillShares(
          java.lang.Iterable values) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, killShares_);
          onChanged();
        } else {
          killSharesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder clearKillShares() {
        if (killSharesBuilder_ == null) {
          killShares_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          killSharesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public Builder removeKillShares(int index) {
        if (killSharesBuilder_ == null) {
          ensureKillSharesIsMutable();
          killShares_.remove(index);
          onChanged();
        } else {
          killSharesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder getKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder getKillSharesOrBuilder(
          int index) {
        if (killSharesBuilder_ == null) {
          return killShares_.get(index);  } else {
          return killSharesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesOrBuilderList() {
        if (killSharesBuilder_ != null) {
          return killSharesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(killShares_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder() {
        return getKillSharesFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder addKillSharesBuilder(
          int index) {
        return getKillSharesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_StatsPlayerKillShare kill_shares = 2;
       */
      public java.util.List 
           getKillSharesBuilderList() {
        return getKillSharesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder> 
          getKillSharesFieldBuilder() {
        if (killSharesBuilder_ == null) {
          killSharesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShare.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_StatsPlayerKillShareOrBuilder>(
                  killShares_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          killShares_ = null;
        }
        return killSharesBuilder_;
      }

      private int damageToKill_ ;
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public boolean hasDamageToKill() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public int getDamageToKill() {
        return damageToKill_;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder setDamageToKill(int value) {
        bitField0_ |= 0x00000004;
        damageToKill_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_to_kill = 3;
       */
      public Builder clearDamageToKill() {
        bitField0_ = (bitField0_ & ~0x00000004);
        damageToKill_ = 0;
        onChanged();
        return this;
      }

      private int effectiveHealth_ ;
      /**
       * optional uint32 effective_health = 4;
       */
      public boolean hasEffectiveHealth() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public int getEffectiveHealth() {
        return effectiveHealth_;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder setEffectiveHealth(int value) {
        bitField0_ |= 0x00000008;
        effectiveHealth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 effective_health = 4;
       */
      public Builder clearEffectiveHealth() {
        bitField0_ = (bitField0_ & ~0x00000008);
        effectiveHealth_ = 0;
        onChanged();
        return this;
      }

      private float deathTime_ ;
      /**
       * optional float death_time = 5;
       */
      public boolean hasDeathTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float death_time = 5;
       */
      public float getDeathTime() {
        return deathTime_;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder setDeathTime(float value) {
        bitField0_ |= 0x00000010;
        deathTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float death_time = 5;
       */
      public Builder clearDeathTime() {
        bitField0_ = (bitField0_ & ~0x00000010);
        deathTime_ = 0F;
        onChanged();
        return this;
      }

      private int killerId_ ;
      /**
       * optional int32 killer_id = 6;
       */
      public boolean hasKillerId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 killer_id = 6;
       */
      public int getKillerId() {
        return killerId_;
      }
      /**
       * optional int32 killer_id = 6;
       */
      public Builder setKillerId(int value) {
        bitField0_ |= 0x00000020;
        killerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 killer_id = 6;
       */
      public Builder clearKillerId() {
        bitField0_ = (bitField0_ & ~0x00000020);
        killerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_StatsKillDetails)
    }

    static {
      defaultInstance = new CDOTAUserMsg_StatsKillDetails(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_StatsKillDetails)
  }

  public interface CMsgHeroAbilityStatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgHeroAbilityStat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    boolean hasStatType();
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType getStatType();

    /**
     * optional int32 int_value = 2;
     */
    boolean hasIntValue();
    /**
     * optional int32 int_value = 2;
     */
    int getIntValue();

    /**
     * optional float float_value = 3;
     */
    boolean hasFloatValue();
    /**
     * optional float float_value = 3;
     */
    float getFloatValue();
  }
  /**
   * Protobuf type {@code CMsgHeroAbilityStat}
   */
  public static final class CMsgHeroAbilityStat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgHeroAbilityStat)
      CMsgHeroAbilityStatOrBuilder {
    // Use CMsgHeroAbilityStat.newBuilder() to construct.
    private CMsgHeroAbilityStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgHeroAbilityStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgHeroAbilityStat defaultInstance;
    public static CMsgHeroAbilityStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgHeroAbilityStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgHeroAbilityStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                statType_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              intValue_ = input.readInt32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              floatValue_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgHeroAbilityStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgHeroAbilityStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STAT_TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType statType_;
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public boolean hasStatType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType getStatType() {
      return statType_;
    }

    public static final int INT_VALUE_FIELD_NUMBER = 2;
    private int intValue_;
    /**
     * optional int32 int_value = 2;
     */
    public boolean hasIntValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 int_value = 2;
     */
    public int getIntValue() {
      return intValue_;
    }

    public static final int FLOAT_VALUE_FIELD_NUMBER = 3;
    private float floatValue_;
    /**
     * optional float float_value = 3;
     */
    public boolean hasFloatValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional float float_value = 3;
     */
    public float getFloatValue() {
      return floatValue_;
    }

    private void initFields() {
      statType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType.k_EHeroStatType_None;
      intValue_ = 0;
      floatValue_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFloat(3, floatValue_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, statType_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, intValue_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, floatValue_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgHeroAbilityStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgHeroAbilityStat)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgHeroAbilityStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        statType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType.k_EHeroStatType_None;
        bitField0_ = (bitField0_ & ~0x00000001);
        intValue_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        floatValue_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgHeroAbilityStat_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.statType_ = statType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.intValue_ = intValue_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.floatValue_ = floatValue_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.getDefaultInstance()) return this;
        if (other.hasStatType()) {
          setStatType(other.getStatType());
        }
        if (other.hasIntValue()) {
          setIntValue(other.getIntValue());
        }
        if (other.hasFloatValue()) {
          setFloatValue(other.getFloatValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType statType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType.k_EHeroStatType_None;
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public boolean hasStatType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType getStatType() {
        return statType_;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder setStatType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        statType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EHeroStatType stat_type = 1 [default = k_EHeroStatType_None];
       */
      public Builder clearStatType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        statType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EHeroStatType.k_EHeroStatType_None;
        onChanged();
        return this;
      }

      private int intValue_ ;
      /**
       * optional int32 int_value = 2;
       */
      public boolean hasIntValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 int_value = 2;
       */
      public int getIntValue() {
        return intValue_;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder setIntValue(int value) {
        bitField0_ |= 0x00000002;
        intValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_value = 2;
       */
      public Builder clearIntValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        intValue_ = 0;
        onChanged();
        return this;
      }

      private float floatValue_ ;
      /**
       * optional float float_value = 3;
       */
      public boolean hasFloatValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional float float_value = 3;
       */
      public float getFloatValue() {
        return floatValue_;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder setFloatValue(float value) {
        bitField0_ |= 0x00000004;
        floatValue_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_value = 3;
       */
      public Builder clearFloatValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        floatValue_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgHeroAbilityStat)
    }

    static {
      defaultInstance = new CMsgHeroAbilityStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgHeroAbilityStat)
  }

  public interface CMsgCombatAnalyzerPlayerStatOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgCombatAnalyzerPlayerStat)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 account_id = 1;
     */
    boolean hasAccountId();
    /**
     * optional uint32 account_id = 1;
     */
    int getAccountId();

    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index);
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    int getHeroAbilityStatsCount();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    java.util.List 
        getHeroAbilityStatsOrBuilderList();
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
   */
  public static final class CMsgCombatAnalyzerPlayerStat extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgCombatAnalyzerPlayerStat)
      CMsgCombatAnalyzerPlayerStatOrBuilder {
    // Use CMsgCombatAnalyzerPlayerStat.newBuilder() to construct.
    private CMsgCombatAnalyzerPlayerStat(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerPlayerStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerPlayerStat defaultInstance;
    public static CMsgCombatAnalyzerPlayerStat getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerPlayerStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              accountId_ = input.readUInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                heroAbilityStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              heroAbilityStats_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerPlayerStat parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerPlayerStat(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ACCOUNT_ID_FIELD_NUMBER = 1;
    private int accountId_;
    /**
     * optional uint32 account_id = 1;
     */
    public boolean hasAccountId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 account_id = 1;
     */
    public int getAccountId() {
      return accountId_;
    }

    public static final int HERO_ABILITY_STATS_FIELD_NUMBER = 2;
    private java.util.List heroAbilityStats_;
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List getHeroAbilityStatsList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public java.util.List 
        getHeroAbilityStatsOrBuilderList() {
      return heroAbilityStats_;
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public int getHeroAbilityStatsCount() {
      return heroAbilityStats_.size();
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
      return heroAbilityStats_.get(index);
    }
    /**
     * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
        int index) {
      return heroAbilityStats_.get(index);
    }

    private void initFields() {
      accountId_ = 0;
      heroAbilityStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        output.writeMessage(2, heroAbilityStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, accountId_);
      }
      for (int i = 0; i < heroAbilityStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, heroAbilityStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerPlayerStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgCombatAnalyzerPlayerStat)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeroAbilityStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        accountId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.accountId_ = accountId_;
        if (heroAbilityStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            heroAbilityStats_ = java.util.Collections.unmodifiableList(heroAbilityStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.heroAbilityStats_ = heroAbilityStats_;
        } else {
          result.heroAbilityStats_ = heroAbilityStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance()) return this;
        if (other.hasAccountId()) {
          setAccountId(other.getAccountId());
        }
        if (heroAbilityStatsBuilder_ == null) {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStats_.isEmpty()) {
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureHeroAbilityStatsIsMutable();
              heroAbilityStats_.addAll(other.heroAbilityStats_);
            }
            onChanged();
          }
        } else {
          if (!other.heroAbilityStats_.isEmpty()) {
            if (heroAbilityStatsBuilder_.isEmpty()) {
              heroAbilityStatsBuilder_.dispose();
              heroAbilityStatsBuilder_ = null;
              heroAbilityStats_ = other.heroAbilityStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              heroAbilityStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getHeroAbilityStatsFieldBuilder() : null;
            } else {
              heroAbilityStatsBuilder_.addAllMessages(other.heroAbilityStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int accountId_ ;
      /**
       * optional uint32 account_id = 1;
       */
      public boolean hasAccountId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 account_id = 1;
       */
      public int getAccountId() {
        return accountId_;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder setAccountId(int value) {
        bitField0_ |= 0x00000001;
        accountId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 account_id = 1;
       */
      public Builder clearAccountId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        accountId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List heroAbilityStats_ =
        java.util.Collections.emptyList();
      private void ensureHeroAbilityStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          heroAbilityStats_ = new java.util.ArrayList(heroAbilityStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder> heroAbilityStatsBuilder_;

      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List getHeroAbilityStatsList() {
        if (heroAbilityStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        } else {
          return heroAbilityStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public int getHeroAbilityStatsCount() {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.size();
        } else {
          return heroAbilityStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat getHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);
        } else {
          return heroAbilityStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder setHeroAbilityStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat value) {
        if (heroAbilityStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, value);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addHeroAbilityStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder builderForValue) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder addAllHeroAbilityStats(
          java.lang.Iterable values) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, heroAbilityStats_);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder clearHeroAbilityStats() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public Builder removeHeroAbilityStats(int index) {
        if (heroAbilityStatsBuilder_ == null) {
          ensureHeroAbilityStatsIsMutable();
          heroAbilityStats_.remove(index);
          onChanged();
        } else {
          heroAbilityStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder getHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder getHeroAbilityStatsOrBuilder(
          int index) {
        if (heroAbilityStatsBuilder_ == null) {
          return heroAbilityStats_.get(index);  } else {
          return heroAbilityStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsOrBuilderList() {
        if (heroAbilityStatsBuilder_ != null) {
          return heroAbilityStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(heroAbilityStats_);
        }
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder() {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder addHeroAbilityStatsBuilder(
          int index) {
        return getHeroAbilityStatsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgHeroAbilityStat hero_ability_stats = 2;
       */
      public java.util.List 
           getHeroAbilityStatsBuilderList() {
        return getHeroAbilityStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder> 
          getHeroAbilityStatsFieldBuilder() {
        if (heroAbilityStatsBuilder_ == null) {
          heroAbilityStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgHeroAbilityStatOrBuilder>(
                  heroAbilityStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          heroAbilityStats_ = null;
        }
        return heroAbilityStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerPlayerStat)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerPlayerStat(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerPlayerStat)
  }

  public interface CMsgCombatAnalyzerStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgCombatAnalyzerStats)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint64 match_id = 1;
     */
    boolean hasMatchId();
    /**
     * optional uint64 match_id = 1;
     */
    long getMatchId();

    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index);
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    int getPlayerStatsCount();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    java.util.List 
        getPlayerStatsOrBuilderList();
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CMsgCombatAnalyzerStats}
   */
  public static final class CMsgCombatAnalyzerStats extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgCombatAnalyzerStats)
      CMsgCombatAnalyzerStatsOrBuilder {
    // Use CMsgCombatAnalyzerStats.newBuilder() to construct.
    private CMsgCombatAnalyzerStats(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgCombatAnalyzerStats(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgCombatAnalyzerStats defaultInstance;
    public static CMsgCombatAnalyzerStats getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgCombatAnalyzerStats getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgCombatAnalyzerStats(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              matchId_ = input.readUInt64();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                playerStats_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              playerStats_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgCombatAnalyzerStats parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgCombatAnalyzerStats(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int MATCH_ID_FIELD_NUMBER = 1;
    private long matchId_;
    /**
     * optional uint64 match_id = 1;
     */
    public boolean hasMatchId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint64 match_id = 1;
     */
    public long getMatchId() {
      return matchId_;
    }

    public static final int PLAYER_STATS_FIELD_NUMBER = 2;
    private java.util.List playerStats_;
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List getPlayerStatsList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public java.util.List 
        getPlayerStatsOrBuilderList() {
      return playerStats_;
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public int getPlayerStatsCount() {
      return playerStats_.size();
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
      return playerStats_.get(index);
    }
    /**
     * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
        int index) {
      return playerStats_.get(index);
    }

    private void initFields() {
      matchId_ = 0L;
      playerStats_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt64(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        output.writeMessage(2, playerStats_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(1, matchId_);
      }
      for (int i = 0; i < playerStats_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, playerStats_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgCombatAnalyzerStats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgCombatAnalyzerStats)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStatsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerStatsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        matchId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgCombatAnalyzerStats_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.matchId_ = matchId_;
        if (playerStatsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            playerStats_ = java.util.Collections.unmodifiableList(playerStats_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.playerStats_ = playerStats_;
        } else {
          result.playerStats_ = playerStatsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats.getDefaultInstance()) return this;
        if (other.hasMatchId()) {
          setMatchId(other.getMatchId());
        }
        if (playerStatsBuilder_ == null) {
          if (!other.playerStats_.isEmpty()) {
            if (playerStats_.isEmpty()) {
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePlayerStatsIsMutable();
              playerStats_.addAll(other.playerStats_);
            }
            onChanged();
          }
        } else {
          if (!other.playerStats_.isEmpty()) {
            if (playerStatsBuilder_.isEmpty()) {
              playerStatsBuilder_.dispose();
              playerStatsBuilder_ = null;
              playerStats_ = other.playerStats_;
              bitField0_ = (bitField0_ & ~0x00000002);
              playerStatsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerStatsFieldBuilder() : null;
            } else {
              playerStatsBuilder_.addAllMessages(other.playerStats_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerStats) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private long matchId_ ;
      /**
       * optional uint64 match_id = 1;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint64 match_id = 1;
       */
      public long getMatchId() {
        return matchId_;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder setMatchId(long value) {
        bitField0_ |= 0x00000001;
        matchId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint64 match_id = 1;
       */
      public Builder clearMatchId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        matchId_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List playerStats_ =
        java.util.Collections.emptyList();
      private void ensurePlayerStatsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          playerStats_ = new java.util.ArrayList(playerStats_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder> playerStatsBuilder_;

      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List getPlayerStatsList() {
        if (playerStatsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerStats_);
        } else {
          return playerStatsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public int getPlayerStatsCount() {
        if (playerStatsBuilder_ == null) {
          return playerStats_.size();
        } else {
          return playerStatsBuilder_.getCount();
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat getPlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);
        } else {
          return playerStatsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder setPlayerStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat value) {
        if (playerStatsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, value);
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addPlayerStats(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder builderForValue) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerStatsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder addAllPlayerStats(
          java.lang.Iterable values) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerStats_);
          onChanged();
        } else {
          playerStatsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder clearPlayerStats() {
        if (playerStatsBuilder_ == null) {
          playerStats_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          playerStatsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public Builder removePlayerStats(int index) {
        if (playerStatsBuilder_ == null) {
          ensurePlayerStatsIsMutable();
          playerStats_.remove(index);
          onChanged();
        } else {
          playerStatsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder getPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder getPlayerStatsOrBuilder(
          int index) {
        if (playerStatsBuilder_ == null) {
          return playerStats_.get(index);  } else {
          return playerStatsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsOrBuilderList() {
        if (playerStatsBuilder_ != null) {
          return playerStatsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerStats_);
        }
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder() {
        return getPlayerStatsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder addPlayerStatsBuilder(
          int index) {
        return getPlayerStatsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.getDefaultInstance());
      }
      /**
       * repeated .CMsgCombatAnalyzerPlayerStat player_stats = 2;
       */
      public java.util.List 
           getPlayerStatsBuilderList() {
        return getPlayerStatsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder> 
          getPlayerStatsFieldBuilder() {
        if (playerStatsBuilder_ == null) {
          playerStatsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStat.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgCombatAnalyzerPlayerStatOrBuilder>(
                  playerStats_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          playerStats_ = null;
        }
        return playerStatsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CMsgCombatAnalyzerStats)
    }

    static {
      defaultInstance = new CMsgCombatAnalyzerStats(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgCombatAnalyzerStats)
  }

  public interface CDOTAUserMsg_ProjectionAbilityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ProjectionAbility)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 ability_id = 1;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 1;
     */
    int getAbilityId();

    /**
     * optional int32 caster_ent_index = 2;
     */
    boolean hasCasterEntIndex();
    /**
     * optional int32 caster_ent_index = 2;
     */
    int getCasterEntIndex();

    /**
     * optional int32 caster_team = 3;
     */
    boolean hasCasterTeam();
    /**
     * optional int32 caster_team = 3;
     */
    int getCasterTeam();

    /**
     * optional bool channel_end = 4;
     */
    boolean hasChannelEnd();
    /**
     * optional bool channel_end = 4;
     */
    boolean getChannelEnd();

    /**
     * optional .CMsgVector origin = 5;
     */
    boolean hasOrigin();
    /**
     * optional .CMsgVector origin = 5;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin();
    /**
     * optional .CMsgVector origin = 5;
     */
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder();

    /**
     * optional bool track_caster_only = 6;
     */
    boolean hasTrackCasterOnly();
    /**
     * optional bool track_caster_only = 6;
     */
    boolean getTrackCasterOnly();

    /**
     * optional float end_time = 7;
     */
    boolean hasEndTime();
    /**
     * optional float end_time = 7;
     */
    float getEndTime();

    /**
     * optional int32 victim_ent_index = 8;
     */
    boolean hasVictimEntIndex();
    /**
     * optional int32 victim_ent_index = 8;
     */
    int getVictimEntIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ProjectionAbility}
   */
  public static final class CDOTAUserMsg_ProjectionAbility extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ProjectionAbility)
      CDOTAUserMsg_ProjectionAbilityOrBuilder {
    // Use CDOTAUserMsg_ProjectionAbility.newBuilder() to construct.
    private CDOTAUserMsg_ProjectionAbility(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ProjectionAbility(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ProjectionAbility defaultInstance;
    public static CDOTAUserMsg_ProjectionAbility getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ProjectionAbility getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ProjectionAbility(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              abilityId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              casterEntIndex_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              casterTeam_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              channelEnd_ = input.readBool();
              break;
            }
            case 42: {
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = origin_.toBuilder();
              }
              origin_ = input.readMessage(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(origin_);
                origin_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              trackCasterOnly_ = input.readBool();
              break;
            }
            case 61: {
              bitField0_ |= 0x00000040;
              endTime_ = input.readFloat();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              victimEntIndex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ProjectionAbility parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ProjectionAbility(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int ABILITY_ID_FIELD_NUMBER = 1;
    private int abilityId_;
    /**
     * optional int32 ability_id = 1;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 ability_id = 1;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int CASTER_ENT_INDEX_FIELD_NUMBER = 2;
    private int casterEntIndex_;
    /**
     * optional int32 caster_ent_index = 2;
     */
    public boolean hasCasterEntIndex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 caster_ent_index = 2;
     */
    public int getCasterEntIndex() {
      return casterEntIndex_;
    }

    public static final int CASTER_TEAM_FIELD_NUMBER = 3;
    private int casterTeam_;
    /**
     * optional int32 caster_team = 3;
     */
    public boolean hasCasterTeam() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 caster_team = 3;
     */
    public int getCasterTeam() {
      return casterTeam_;
    }

    public static final int CHANNEL_END_FIELD_NUMBER = 4;
    private boolean channelEnd_;
    /**
     * optional bool channel_end = 4;
     */
    public boolean hasChannelEnd() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool channel_end = 4;
     */
    public boolean getChannelEnd() {
      return channelEnd_;
    }

    public static final int ORIGIN_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_;
    /**
     * optional .CMsgVector origin = 5;
     */
    public boolean hasOrigin() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .CMsgVector origin = 5;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
      return origin_;
    }
    /**
     * optional .CMsgVector origin = 5;
     */
    public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
      return origin_;
    }

    public static final int TRACK_CASTER_ONLY_FIELD_NUMBER = 6;
    private boolean trackCasterOnly_;
    /**
     * optional bool track_caster_only = 6;
     */
    public boolean hasTrackCasterOnly() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool track_caster_only = 6;
     */
    public boolean getTrackCasterOnly() {
      return trackCasterOnly_;
    }

    public static final int END_TIME_FIELD_NUMBER = 7;
    private float endTime_;
    /**
     * optional float end_time = 7;
     */
    public boolean hasEndTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float end_time = 7;
     */
    public float getEndTime() {
      return endTime_;
    }

    public static final int VICTIM_ENT_INDEX_FIELD_NUMBER = 8;
    private int victimEntIndex_;
    /**
     * optional int32 victim_ent_index = 8;
     */
    public boolean hasVictimEntIndex() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional int32 victim_ent_index = 8;
     */
    public int getVictimEntIndex() {
      return victimEntIndex_;
    }

    private void initFields() {
      abilityId_ = 0;
      casterEntIndex_ = 0;
      casterTeam_ = 0;
      channelEnd_ = false;
      origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      trackCasterOnly_ = false;
      endTime_ = 0F;
      victimEntIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, abilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, casterEntIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, casterTeam_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, channelEnd_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, origin_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, trackCasterOnly_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(7, endTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, victimEntIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, abilityId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, casterEntIndex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, casterTeam_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, channelEnd_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, origin_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, trackCasterOnly_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, endTime_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, victimEntIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ProjectionAbility}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ProjectionAbility)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbilityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getOriginFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        casterEntIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        casterTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        channelEnd_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        trackCasterOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        endTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000040);
        victimEntIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.casterEntIndex_ = casterEntIndex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.casterTeam_ = casterTeam_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.channelEnd_ = channelEnd_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (originBuilder_ == null) {
          result.origin_ = origin_;
        } else {
          result.origin_ = originBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.trackCasterOnly_ = trackCasterOnly_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.endTime_ = endTime_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.victimEntIndex_ = victimEntIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility.getDefaultInstance()) return this;
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasCasterEntIndex()) {
          setCasterEntIndex(other.getCasterEntIndex());
        }
        if (other.hasCasterTeam()) {
          setCasterTeam(other.getCasterTeam());
        }
        if (other.hasChannelEnd()) {
          setChannelEnd(other.getChannelEnd());
        }
        if (other.hasOrigin()) {
          mergeOrigin(other.getOrigin());
        }
        if (other.hasTrackCasterOnly()) {
          setTrackCasterOnly(other.getTrackCasterOnly());
        }
        if (other.hasEndTime()) {
          setEndTime(other.getEndTime());
        }
        if (other.hasVictimEntIndex()) {
          setVictimEntIndex(other.getVictimEntIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionAbility) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 1;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 ability_id = 1;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 1;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000001;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 1;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int casterEntIndex_ ;
      /**
       * optional int32 caster_ent_index = 2;
       */
      public boolean hasCasterEntIndex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public int getCasterEntIndex() {
        return casterEntIndex_;
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public Builder setCasterEntIndex(int value) {
        bitField0_ |= 0x00000002;
        casterEntIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 caster_ent_index = 2;
       */
      public Builder clearCasterEntIndex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        casterEntIndex_ = 0;
        onChanged();
        return this;
      }

      private int casterTeam_ ;
      /**
       * optional int32 caster_team = 3;
       */
      public boolean hasCasterTeam() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 caster_team = 3;
       */
      public int getCasterTeam() {
        return casterTeam_;
      }
      /**
       * optional int32 caster_team = 3;
       */
      public Builder setCasterTeam(int value) {
        bitField0_ |= 0x00000004;
        casterTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 caster_team = 3;
       */
      public Builder clearCasterTeam() {
        bitField0_ = (bitField0_ & ~0x00000004);
        casterTeam_ = 0;
        onChanged();
        return this;
      }

      private boolean channelEnd_ ;
      /**
       * optional bool channel_end = 4;
       */
      public boolean hasChannelEnd() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool channel_end = 4;
       */
      public boolean getChannelEnd() {
        return channelEnd_;
      }
      /**
       * optional bool channel_end = 4;
       */
      public Builder setChannelEnd(boolean value) {
        bitField0_ |= 0x00000008;
        channelEnd_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool channel_end = 4;
       */
      public Builder clearChannelEnd() {
        bitField0_ = (bitField0_ & ~0x00000008);
        channelEnd_ = false;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> originBuilder_;
      /**
       * optional .CMsgVector origin = 5;
       */
      public boolean hasOrigin() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector getOrigin() {
        if (originBuilder_ == null) {
          return origin_;
        } else {
          return originBuilder_.getMessage();
        }
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder setOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          origin_ = value;
          onChanged();
        } else {
          originBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder setOrigin(
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder builderForValue) {
        if (originBuilder_ == null) {
          origin_ = builderForValue.build();
          onChanged();
        } else {
          originBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder mergeOrigin(skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector value) {
        if (originBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              origin_ != skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance()) {
            origin_ =
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.newBuilder(origin_).mergeFrom(value).buildPartial();
          } else {
            origin_ = value;
          }
          onChanged();
        } else {
          originBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public Builder clearOrigin() {
        if (originBuilder_ == null) {
          origin_ = skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.getDefaultInstance();
          onChanged();
        } else {
          originBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder getOriginBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getOriginFieldBuilder().getBuilder();
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      public skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder getOriginOrBuilder() {
        if (originBuilder_ != null) {
          return originBuilder_.getMessageOrBuilder();
        } else {
          return origin_;
        }
      }
      /**
       * optional .CMsgVector origin = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder> 
          getOriginFieldBuilder() {
        if (originBuilder_ == null) {
          originBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVector.Builder, skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.CMsgVectorOrBuilder>(
                  getOrigin(),
                  getParentForChildren(),
                  isClean());
          origin_ = null;
        }
        return originBuilder_;
      }

      private boolean trackCasterOnly_ ;
      /**
       * optional bool track_caster_only = 6;
       */
      public boolean hasTrackCasterOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public boolean getTrackCasterOnly() {
        return trackCasterOnly_;
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public Builder setTrackCasterOnly(boolean value) {
        bitField0_ |= 0x00000020;
        trackCasterOnly_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool track_caster_only = 6;
       */
      public Builder clearTrackCasterOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        trackCasterOnly_ = false;
        onChanged();
        return this;
      }

      private float endTime_ ;
      /**
       * optional float end_time = 7;
       */
      public boolean hasEndTime() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional float end_time = 7;
       */
      public float getEndTime() {
        return endTime_;
      }
      /**
       * optional float end_time = 7;
       */
      public Builder setEndTime(float value) {
        bitField0_ |= 0x00000040;
        endTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float end_time = 7;
       */
      public Builder clearEndTime() {
        bitField0_ = (bitField0_ & ~0x00000040);
        endTime_ = 0F;
        onChanged();
        return this;
      }

      private int victimEntIndex_ ;
      /**
       * optional int32 victim_ent_index = 8;
       */
      public boolean hasVictimEntIndex() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public int getVictimEntIndex() {
        return victimEntIndex_;
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public Builder setVictimEntIndex(int value) {
        bitField0_ |= 0x00000080;
        victimEntIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 victim_ent_index = 8;
       */
      public Builder clearVictimEntIndex() {
        bitField0_ = (bitField0_ & ~0x00000080);
        victimEntIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ProjectionAbility)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ProjectionAbility(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ProjectionAbility)
  }

  public interface CDOTAUserMsg_ProjectionEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ProjectionEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    boolean hasEventId();
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent getEventId();

    /**
     * optional uint32 team = 2;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 2;
     */
    int getTeam();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ProjectionEvent}
   */
  public static final class CDOTAUserMsg_ProjectionEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ProjectionEvent)
      CDOTAUserMsg_ProjectionEventOrBuilder {
    // Use CDOTAUserMsg_ProjectionEvent.newBuilder() to construct.
    private CDOTAUserMsg_ProjectionEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ProjectionEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ProjectionEvent defaultInstance;
    public static CDOTAUserMsg_ProjectionEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ProjectionEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ProjectionEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                eventId_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              team_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ProjectionEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ProjectionEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EVENT_ID_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent eventId_;
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent getEventId() {
      return eventId_;
    }

    public static final int TEAM_FIELD_NUMBER = 2;
    private int team_;
    /**
     * optional uint32 team = 2;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 team = 2;
     */
    public int getTeam() {
      return team_;
    }

    private void initFields() {
      eventId_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent.ePE_FirstBlood;
      team_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, eventId_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, team_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, eventId_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, team_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ProjectionEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ProjectionEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        eventId_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent.ePE_FirstBlood;
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.team_ = team_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent.getDefaultInstance()) return this;
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ProjectionEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent eventId_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent.ePE_FirstBlood;
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent getEventId() {
        return eventId_;
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public Builder setEventId(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EProjectionEvent event_id = 1 [default = ePE_FirstBlood];
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        eventId_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.EProjectionEvent.ePE_FirstBlood;
        onChanged();
        return this;
      }

      private int team_ ;
      /**
       * optional uint32 team = 2;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 team = 2;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 2;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000002;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 2;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000002);
        team_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ProjectionEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ProjectionEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ProjectionEvent)
  }

  public interface CDOTAUserMsg_XPAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_XPAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 2;
     */
    int getTargetEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_XPAlert}
   */
  public static final class CDOTAUserMsg_XPAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_XPAlert)
      CDOTAUserMsg_XPAlertOrBuilder {
    // Use CDOTAUserMsg_XPAlert.newBuilder() to construct.
    private CDOTAUserMsg_XPAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_XPAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_XPAlert defaultInstance;
    public static CDOTAUserMsg_XPAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_XPAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_XPAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_XPAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_XPAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_XPAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_XPAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_XPAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_XPAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_XPAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_XPAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_XPAlert)
  }

  public interface CDOTAUserMsg_TalentTreeAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TalentTreeAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 target_entindex = 2;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 2;
     */
    int getTargetEntindex();

    /**
     * optional int32 ability_id = 3;
     */
    boolean hasAbilityId();
    /**
     * optional int32 ability_id = 3;
     */
    int getAbilityId();

    /**
     * optional int32 slot = 4;
     */
    boolean hasSlot();
    /**
     * optional int32 slot = 4;
     */
    int getSlot();

    /**
     * optional bool learned = 5;
     */
    boolean hasLearned();
    /**
     * optional bool learned = 5;
     */
    boolean getLearned();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TalentTreeAlert}
   */
  public static final class CDOTAUserMsg_TalentTreeAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TalentTreeAlert)
      CDOTAUserMsg_TalentTreeAlertOrBuilder {
    // Use CDOTAUserMsg_TalentTreeAlert.newBuilder() to construct.
    private CDOTAUserMsg_TalentTreeAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TalentTreeAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TalentTreeAlert defaultInstance;
    public static CDOTAUserMsg_TalentTreeAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TalentTreeAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TalentTreeAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              abilityId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              slot_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              learned_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TalentTreeAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TalentTreeAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 2;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 2;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_entindex = 2;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int ABILITY_ID_FIELD_NUMBER = 3;
    private int abilityId_;
    /**
     * optional int32 ability_id = 3;
     */
    public boolean hasAbilityId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 ability_id = 3;
     */
    public int getAbilityId() {
      return abilityId_;
    }

    public static final int SLOT_FIELD_NUMBER = 4;
    private int slot_;
    /**
     * optional int32 slot = 4;
     */
    public boolean hasSlot() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 slot = 4;
     */
    public int getSlot() {
      return slot_;
    }

    public static final int LEARNED_FIELD_NUMBER = 5;
    private boolean learned_;
    /**
     * optional bool learned = 5;
     */
    public boolean hasLearned() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool learned = 5;
     */
    public boolean getLearned() {
      return learned_;
    }

    private void initFields() {
      playerId_ = 0;
      targetEntindex_ = 0;
      abilityId_ = 0;
      slot_ = 0;
      learned_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, abilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, slot_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, learned_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetEntindex_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, abilityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, slot_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, learned_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TalentTreeAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TalentTreeAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        abilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        slot_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        learned_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.abilityId_ = abilityId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.slot_ = slot_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.learned_ = learned_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasAbilityId()) {
          setAbilityId(other.getAbilityId());
        }
        if (other.hasSlot()) {
          setSlot(other.getSlot());
        }
        if (other.hasLearned()) {
          setLearned(other.getLearned());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TalentTreeAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 2;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000002;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 2;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int abilityId_ ;
      /**
       * optional int32 ability_id = 3;
       */
      public boolean hasAbilityId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 ability_id = 3;
       */
      public int getAbilityId() {
        return abilityId_;
      }
      /**
       * optional int32 ability_id = 3;
       */
      public Builder setAbilityId(int value) {
        bitField0_ |= 0x00000004;
        abilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 ability_id = 3;
       */
      public Builder clearAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        abilityId_ = 0;
        onChanged();
        return this;
      }

      private int slot_ ;
      /**
       * optional int32 slot = 4;
       */
      public boolean hasSlot() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 slot = 4;
       */
      public int getSlot() {
        return slot_;
      }
      /**
       * optional int32 slot = 4;
       */
      public Builder setSlot(int value) {
        bitField0_ |= 0x00000008;
        slot_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 slot = 4;
       */
      public Builder clearSlot() {
        bitField0_ = (bitField0_ & ~0x00000008);
        slot_ = 0;
        onChanged();
        return this;
      }

      private boolean learned_ ;
      /**
       * optional bool learned = 5;
       */
      public boolean hasLearned() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool learned = 5;
       */
      public boolean getLearned() {
        return learned_;
      }
      /**
       * optional bool learned = 5;
       */
      public Builder setLearned(boolean value) {
        bitField0_ |= 0x00000010;
        learned_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool learned = 5;
       */
      public Builder clearLearned() {
        bitField0_ = (bitField0_ & ~0x00000010);
        learned_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TalentTreeAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TalentTreeAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TalentTreeAlert)
  }

  public interface CDOTAUserMsg_UpdateQuestProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_UpdateQuestProgress)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_UpdateQuestProgress}
   */
  public static final class CDOTAUserMsg_UpdateQuestProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_UpdateQuestProgress)
      CDOTAUserMsg_UpdateQuestProgressOrBuilder {
    // Use CDOTAUserMsg_UpdateQuestProgress.newBuilder() to construct.
    private CDOTAUserMsg_UpdateQuestProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_UpdateQuestProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_UpdateQuestProgress defaultInstance;
    public static CDOTAUserMsg_UpdateQuestProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_UpdateQuestProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_UpdateQuestProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_UpdateQuestProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_UpdateQuestProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_UpdateQuestProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_UpdateQuestProgress)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_UpdateQuestProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_UpdateQuestProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_UpdateQuestProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_UpdateQuestProgress)
  }

  public interface CDOTAUserMsg_KillcamDamageTakenOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_KillcamDamageTaken)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * required int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 damage_taken = 2;
     */
    boolean hasDamageTaken();
    /**
     * optional uint32 damage_taken = 2;
     */
    int getDamageTaken();

    /**
     * optional uint32 item_type = 3;
     */
    boolean hasItemType();
    /**
     * optional uint32 item_type = 3;
     */
    int getItemType();

    /**
     * optional int32 item_ability_id = 4;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 4;
     */
    int getItemAbilityId();

    /**
     * optional string hero_name = 5;
     */
    boolean hasHeroName();
    /**
     * optional string hero_name = 5;
     */
    java.lang.String getHeroName();
    /**
     * optional string hero_name = 5;
     */
    com.google.protobuf.ByteString
        getHeroNameBytes();

    /**
     * optional string damage_color = 6;
     */
    boolean hasDamageColor();
    /**
     * optional string damage_color = 6;
     */
    java.lang.String getDamageColor();
    /**
     * optional string damage_color = 6;
     */
    com.google.protobuf.ByteString
        getDamageColorBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_KillcamDamageTaken}
   */
  public static final class CDOTAUserMsg_KillcamDamageTaken extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_KillcamDamageTaken)
      CDOTAUserMsg_KillcamDamageTakenOrBuilder {
    // Use CDOTAUserMsg_KillcamDamageTaken.newBuilder() to construct.
    private CDOTAUserMsg_KillcamDamageTaken(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_KillcamDamageTaken(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_KillcamDamageTaken defaultInstance;
    public static CDOTAUserMsg_KillcamDamageTaken getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_KillcamDamageTaken getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_KillcamDamageTaken(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              damageTaken_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              itemType_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              heroName_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              damageColor_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_KillcamDamageTaken_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_KillcamDamageTaken parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_KillcamDamageTaken(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * required int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int DAMAGE_TAKEN_FIELD_NUMBER = 2;
    private int damageTaken_;
    /**
     * optional uint32 damage_taken = 2;
     */
    public boolean hasDamageTaken() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 damage_taken = 2;
     */
    public int getDamageTaken() {
      return damageTaken_;
    }

    public static final int ITEM_TYPE_FIELD_NUMBER = 3;
    private int itemType_;
    /**
     * optional uint32 item_type = 3;
     */
    public boolean hasItemType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 item_type = 3;
     */
    public int getItemType() {
      return itemType_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 4;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 4;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 item_ability_id = 4;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int HERO_NAME_FIELD_NUMBER = 5;
    private java.lang.Object heroName_;
    /**
     * optional string hero_name = 5;
     */
    public boolean hasHeroName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string hero_name = 5;
     */
    public java.lang.String getHeroName() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          heroName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string hero_name = 5;
     */
    public com.google.protobuf.ByteString
        getHeroNameBytes() {
      java.lang.Object ref = heroName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        heroName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DAMAGE_COLOR_FIELD_NUMBER = 6;
    private java.lang.Object damageColor_;
    /**
     * optional string damage_color = 6;
     */
    public boolean hasDamageColor() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional string damage_color = 6;
     */
    public java.lang.String getDamageColor() {
      java.lang.Object ref = damageColor_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          damageColor_ = s;
        }
        return s;
      }
    }
    /**
     * optional string damage_color = 6;
     */
    public com.google.protobuf.ByteString
        getDamageColorBytes() {
      java.lang.Object ref = damageColor_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        damageColor_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      damageTaken_ = 0;
      itemType_ = 0;
      itemAbilityId_ = 0;
      heroName_ = "";
      damageColor_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, damageTaken_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, itemType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getDamageColorBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, damageTaken_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, itemType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getHeroNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getDamageColorBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_KillcamDamageTaken}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_KillcamDamageTaken)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTakenOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_KillcamDamageTaken_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        damageTaken_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        itemType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        heroName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        damageColor_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.damageTaken_ = damageTaken_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.itemType_ = itemType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.heroName_ = heroName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.damageColor_ = damageColor_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasDamageTaken()) {
          setDamageTaken(other.getDamageTaken());
        }
        if (other.hasItemType()) {
          setItemType(other.getItemType());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasHeroName()) {
          bitField0_ |= 0x00000010;
          heroName_ = other.heroName_;
          onChanged();
        }
        if (other.hasDamageColor()) {
          bitField0_ |= 0x00000020;
          damageColor_ = other.damageColor_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_KillcamDamageTaken) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * required int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * required int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int damageTaken_ ;
      /**
       * optional uint32 damage_taken = 2;
       */
      public boolean hasDamageTaken() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 damage_taken = 2;
       */
      public int getDamageTaken() {
        return damageTaken_;
      }
      /**
       * optional uint32 damage_taken = 2;
       */
      public Builder setDamageTaken(int value) {
        bitField0_ |= 0x00000002;
        damageTaken_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_taken = 2;
       */
      public Builder clearDamageTaken() {
        bitField0_ = (bitField0_ & ~0x00000002);
        damageTaken_ = 0;
        onChanged();
        return this;
      }

      private int itemType_ ;
      /**
       * optional uint32 item_type = 3;
       */
      public boolean hasItemType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 item_type = 3;
       */
      public int getItemType() {
        return itemType_;
      }
      /**
       * optional uint32 item_type = 3;
       */
      public Builder setItemType(int value) {
        bitField0_ |= 0x00000004;
        itemType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 item_type = 3;
       */
      public Builder clearItemType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemType_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 4;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 item_ability_id = 4;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 4;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000008;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 4;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object heroName_ = "";
      /**
       * optional string hero_name = 5;
       */
      public boolean hasHeroName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string hero_name = 5;
       */
      public java.lang.String getHeroName() {
        java.lang.Object ref = heroName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            heroName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string hero_name = 5;
       */
      public com.google.protobuf.ByteString
          getHeroNameBytes() {
        java.lang.Object ref = heroName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          heroName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string hero_name = 5;
       */
      public Builder setHeroName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        heroName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 5;
       */
      public Builder clearHeroName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        heroName_ = getDefaultInstance().getHeroName();
        onChanged();
        return this;
      }
      /**
       * optional string hero_name = 5;
       */
      public Builder setHeroNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        heroName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object damageColor_ = "";
      /**
       * optional string damage_color = 6;
       */
      public boolean hasDamageColor() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional string damage_color = 6;
       */
      public java.lang.String getDamageColor() {
        java.lang.Object ref = damageColor_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            damageColor_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string damage_color = 6;
       */
      public com.google.protobuf.ByteString
          getDamageColorBytes() {
        java.lang.Object ref = damageColor_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          damageColor_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string damage_color = 6;
       */
      public Builder setDamageColor(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        damageColor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string damage_color = 6;
       */
      public Builder clearDamageColor() {
        bitField0_ = (bitField0_ & ~0x00000020);
        damageColor_ = getDefaultInstance().getDamageColor();
        onChanged();
        return this;
      }
      /**
       * optional string damage_color = 6;
       */
      public Builder setDamageColorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        damageColor_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_KillcamDamageTaken)
    }

    static {
      defaultInstance = new CDOTAUserMsg_KillcamDamageTaken(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_KillcamDamageTaken)
  }

  public interface CDOTAUserMsg_SelectPenaltyGoldOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SelectPenaltyGold)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * required int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional sint32 cost = 2;
     */
    boolean hasCost();
    /**
     * optional sint32 cost = 2;
     */
    int getCost();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SelectPenaltyGold}
   */
  public static final class CDOTAUserMsg_SelectPenaltyGold extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SelectPenaltyGold)
      CDOTAUserMsg_SelectPenaltyGoldOrBuilder {
    // Use CDOTAUserMsg_SelectPenaltyGold.newBuilder() to construct.
    private CDOTAUserMsg_SelectPenaltyGold(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SelectPenaltyGold(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SelectPenaltyGold defaultInstance;
    public static CDOTAUserMsg_SelectPenaltyGold getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SelectPenaltyGold getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SelectPenaltyGold(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              cost_ = input.readSInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SelectPenaltyGold parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SelectPenaltyGold(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * required int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int COST_FIELD_NUMBER = 2;
    private int cost_;
    /**
     * optional sint32 cost = 2;
     */
    public boolean hasCost() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional sint32 cost = 2;
     */
    public int getCost() {
      return cost_;
    }

    private void initFields() {
      playerId_ = 0;
      cost_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSInt32(2, cost_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeSInt32Size(2, cost_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SelectPenaltyGold}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SelectPenaltyGold)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGoldOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        cost_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.cost_ = cost_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasCost()) {
          setCost(other.getCost());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SelectPenaltyGold) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * required int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * required int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int cost_ ;
      /**
       * optional sint32 cost = 2;
       */
      public boolean hasCost() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional sint32 cost = 2;
       */
      public int getCost() {
        return cost_;
      }
      /**
       * optional sint32 cost = 2;
       */
      public Builder setCost(int value) {
        bitField0_ |= 0x00000002;
        cost_ = value;
        onChanged();
        return this;
      }
      /**
       * optional sint32 cost = 2;
       */
      public Builder clearCost() {
        bitField0_ = (bitField0_ & ~0x00000002);
        cost_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SelectPenaltyGold)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SelectPenaltyGold(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SelectPenaltyGold)
  }

  public interface CDOTAUserMsg_RollDiceResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RollDiceResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional uint32 roll_min = 3;
     */
    boolean hasRollMin();
    /**
     * optional uint32 roll_min = 3;
     */
    int getRollMin();

    /**
     * optional uint32 roll_max = 4;
     */
    boolean hasRollMax();
    /**
     * optional uint32 roll_max = 4;
     */
    int getRollMax();

    /**
     * optional uint32 result = 5;
     */
    boolean hasResult();
    /**
     * optional uint32 result = 5;
     */
    int getResult();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RollDiceResult}
   */
  public static final class CDOTAUserMsg_RollDiceResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RollDiceResult)
      CDOTAUserMsg_RollDiceResultOrBuilder {
    // Use CDOTAUserMsg_RollDiceResult.newBuilder() to construct.
    private CDOTAUserMsg_RollDiceResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RollDiceResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RollDiceResult defaultInstance;
    public static CDOTAUserMsg_RollDiceResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RollDiceResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RollDiceResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              rollMin_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              rollMax_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              result_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RollDiceResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RollDiceResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int ROLL_MIN_FIELD_NUMBER = 3;
    private int rollMin_;
    /**
     * optional uint32 roll_min = 3;
     */
    public boolean hasRollMin() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 roll_min = 3;
     */
    public int getRollMin() {
      return rollMin_;
    }

    public static final int ROLL_MAX_FIELD_NUMBER = 4;
    private int rollMax_;
    /**
     * optional uint32 roll_max = 4;
     */
    public boolean hasRollMax() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 roll_max = 4;
     */
    public int getRollMax() {
      return rollMax_;
    }

    public static final int RESULT_FIELD_NUMBER = 5;
    private int result_;
    /**
     * optional uint32 result = 5;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 result = 5;
     */
    public int getResult() {
      return result_;
    }

    private void initFields() {
      playerId_ = 0;
      channelType_ = 0;
      rollMin_ = 0;
      rollMax_ = 0;
      result_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, rollMin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, rollMax_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, result_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, rollMin_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, rollMax_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, result_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RollDiceResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RollDiceResult)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        rollMin_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        rollMax_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        result_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.rollMin_ = rollMin_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.rollMax_ = rollMax_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.result_ = result_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasRollMin()) {
          setRollMin(other.getRollMin());
        }
        if (other.hasRollMax()) {
          setRollMax(other.getRollMax());
        }
        if (other.hasResult()) {
          setResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RollDiceResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private int rollMin_ ;
      /**
       * optional uint32 roll_min = 3;
       */
      public boolean hasRollMin() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public int getRollMin() {
        return rollMin_;
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public Builder setRollMin(int value) {
        bitField0_ |= 0x00000004;
        rollMin_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 roll_min = 3;
       */
      public Builder clearRollMin() {
        bitField0_ = (bitField0_ & ~0x00000004);
        rollMin_ = 0;
        onChanged();
        return this;
      }

      private int rollMax_ ;
      /**
       * optional uint32 roll_max = 4;
       */
      public boolean hasRollMax() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public int getRollMax() {
        return rollMax_;
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public Builder setRollMax(int value) {
        bitField0_ |= 0x00000008;
        rollMax_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 roll_max = 4;
       */
      public Builder clearRollMax() {
        bitField0_ = (bitField0_ & ~0x00000008);
        rollMax_ = 0;
        onChanged();
        return this;
      }

      private int result_ ;
      /**
       * optional uint32 result = 5;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 result = 5;
       */
      public int getResult() {
        return result_;
      }
      /**
       * optional uint32 result = 5;
       */
      public Builder setResult(int value) {
        bitField0_ |= 0x00000010;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 result = 5;
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000010);
        result_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RollDiceResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RollDiceResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RollDiceResult)
  }

  public interface CDOTAUserMsg_FlipCoinResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_FlipCoinResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional bool result = 3;
     */
    boolean hasResult();
    /**
     * optional bool result = 3;
     */
    boolean getResult();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_FlipCoinResult}
   */
  public static final class CDOTAUserMsg_FlipCoinResult extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_FlipCoinResult)
      CDOTAUserMsg_FlipCoinResultOrBuilder {
    // Use CDOTAUserMsg_FlipCoinResult.newBuilder() to construct.
    private CDOTAUserMsg_FlipCoinResult(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_FlipCoinResult(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_FlipCoinResult defaultInstance;
    public static CDOTAUserMsg_FlipCoinResult getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_FlipCoinResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_FlipCoinResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              result_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_FlipCoinResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_FlipCoinResult(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int RESULT_FIELD_NUMBER = 3;
    private boolean result_;
    /**
     * optional bool result = 3;
     */
    public boolean hasResult() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool result = 3;
     */
    public boolean getResult() {
      return result_;
    }

    private void initFields() {
      playerId_ = 0;
      channelType_ = 0;
      result_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, result_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, result_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_FlipCoinResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_FlipCoinResult)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        result_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.result_ = result_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasResult()) {
          setResult(other.getResult());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FlipCoinResult) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private boolean result_ ;
      /**
       * optional bool result = 3;
       */
      public boolean hasResult() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool result = 3;
       */
      public boolean getResult() {
        return result_;
      }
      /**
       * optional bool result = 3;
       */
      public Builder setResult(boolean value) {
        bitField0_ |= 0x00000004;
        result_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool result = 3;
       */
      public Builder clearResult() {
        bitField0_ = (bitField0_ & ~0x00000004);
        result_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_FlipCoinResult)
    }

    static {
      defaultInstance = new CDOTAUserMsg_FlipCoinResult(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_FlipCoinResult)
  }

  public interface CDOTAUserMessage_TeamCaptainChangedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMessage_TeamCaptainChanged)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team = 1;
     */
    boolean hasTeam();
    /**
     * optional uint32 team = 1;
     */
    int getTeam();

    /**
     * optional int32 captain_player_id = 2;
     */
    boolean hasCaptainPlayerId();
    /**
     * optional int32 captain_player_id = 2;
     */
    int getCaptainPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMessage_TeamCaptainChanged}
   */
  public static final class CDOTAUserMessage_TeamCaptainChanged extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMessage_TeamCaptainChanged)
      CDOTAUserMessage_TeamCaptainChangedOrBuilder {
    // Use CDOTAUserMessage_TeamCaptainChanged.newBuilder() to construct.
    private CDOTAUserMessage_TeamCaptainChanged(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMessage_TeamCaptainChanged(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMessage_TeamCaptainChanged defaultInstance;
    public static CDOTAUserMessage_TeamCaptainChanged getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMessage_TeamCaptainChanged getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMessage_TeamCaptainChanged(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              team_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              captainPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMessage_TeamCaptainChanged parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMessage_TeamCaptainChanged(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEAM_FIELD_NUMBER = 1;
    private int team_;
    /**
     * optional uint32 team = 1;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team = 1;
     */
    public int getTeam() {
      return team_;
    }

    public static final int CAPTAIN_PLAYER_ID_FIELD_NUMBER = 2;
    private int captainPlayerId_;
    /**
     * optional int32 captain_player_id = 2;
     */
    public boolean hasCaptainPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 captain_player_id = 2;
     */
    public int getCaptainPlayerId() {
      return captainPlayerId_;
    }

    private void initFields() {
      team_ = 0;
      captainPlayerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, captainPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, team_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, captainPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMessage_TeamCaptainChanged}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMessage_TeamCaptainChanged)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChangedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        captainPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.team_ = team_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.captainPlayerId_ = captainPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged.getDefaultInstance()) return this;
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        if (other.hasCaptainPlayerId()) {
          setCaptainPlayerId(other.getCaptainPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMessage_TeamCaptainChanged) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int team_ ;
      /**
       * optional uint32 team = 1;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team = 1;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000001;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team = 1;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000001);
        team_ = 0;
        onChanged();
        return this;
      }

      private int captainPlayerId_ ;
      /**
       * optional int32 captain_player_id = 2;
       */
      public boolean hasCaptainPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 captain_player_id = 2;
       */
      public int getCaptainPlayerId() {
        return captainPlayerId_;
      }
      /**
       * optional int32 captain_player_id = 2;
       */
      public Builder setCaptainPlayerId(int value) {
        bitField0_ |= 0x00000002;
        captainPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 captain_player_id = 2;
       */
      public Builder clearCaptainPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        captainPlayerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMessage_TeamCaptainChanged)
    }

    static {
      defaultInstance = new CDOTAUserMessage_TeamCaptainChanged(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMessage_TeamCaptainChanged)
  }

  public interface CDOTAUserMsg_HeroRelicProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HeroRelicProgress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 hero_relic_type = 1;
     */
    boolean hasHeroRelicType();
    /**
     * optional uint32 hero_relic_type = 1;
     */
    int getHeroRelicType();

    /**
     * optional uint32 value = 2;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 2;
     */
    int getValue();

    /**
     * optional uint32 ehandle = 3;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 3;
     */
    int getEhandle();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();

    /**
     * optional float value_display = 5;
     */
    boolean hasValueDisplay();
    /**
     * optional float value_display = 5;
     */
    float getValueDisplay();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HeroRelicProgress}
   */
  public static final class CDOTAUserMsg_HeroRelicProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HeroRelicProgress)
      CDOTAUserMsg_HeroRelicProgressOrBuilder {
    // Use CDOTAUserMsg_HeroRelicProgress.newBuilder() to construct.
    private CDOTAUserMsg_HeroRelicProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HeroRelicProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HeroRelicProgress defaultInstance;
    public static CDOTAUserMsg_HeroRelicProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HeroRelicProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HeroRelicProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              heroRelicType_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              value_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              ehandle_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
            case 45: {
              bitField0_ |= 0x00000010;
              valueDisplay_ = input.readFloat();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HeroRelicProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HeroRelicProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int HERO_RELIC_TYPE_FIELD_NUMBER = 1;
    private int heroRelicType_;
    /**
     * optional uint32 hero_relic_type = 1;
     */
    public boolean hasHeroRelicType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 hero_relic_type = 1;
     */
    public int getHeroRelicType() {
      return heroRelicType_;
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private int value_;
    /**
     * optional uint32 value = 2;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 value = 2;
     */
    public int getValue() {
      return value_;
    }

    public static final int EHANDLE_FIELD_NUMBER = 3;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 3;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 ehandle = 3;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int VALUE_DISPLAY_FIELD_NUMBER = 5;
    private float valueDisplay_;
    /**
     * optional float value_display = 5;
     */
    public boolean hasValueDisplay() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional float value_display = 5;
     */
    public float getValueDisplay() {
      return valueDisplay_;
    }

    private void initFields() {
      heroRelicType_ = 0;
      value_ = 0;
      ehandle_ = 0;
      eventId_ = 0;
      valueDisplay_ = 0F;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, heroRelicType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, ehandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeFloat(5, valueDisplay_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, heroRelicType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, ehandle_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, valueDisplay_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HeroRelicProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HeroRelicProgress)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        heroRelicType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        valueDisplay_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.heroRelicType_ = heroRelicType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.valueDisplay_ = valueDisplay_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress.getDefaultInstance()) return this;
        if (other.hasHeroRelicType()) {
          setHeroRelicType(other.getHeroRelicType());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasValueDisplay()) {
          setValueDisplay(other.getValueDisplay());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HeroRelicProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int heroRelicType_ ;
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public boolean hasHeroRelicType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public int getHeroRelicType() {
        return heroRelicType_;
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public Builder setHeroRelicType(int value) {
        bitField0_ |= 0x00000001;
        heroRelicType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 hero_relic_type = 1;
       */
      public Builder clearHeroRelicType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        heroRelicType_ = 0;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 2;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 value = 2;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 2;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = 0;
        onChanged();
        return this;
      }

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 3;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000004;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 3;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000004);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private float valueDisplay_ ;
      /**
       * optional float value_display = 5;
       */
      public boolean hasValueDisplay() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional float value_display = 5;
       */
      public float getValueDisplay() {
        return valueDisplay_;
      }
      /**
       * optional float value_display = 5;
       */
      public Builder setValueDisplay(float value) {
        bitField0_ |= 0x00000010;
        valueDisplay_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float value_display = 5;
       */
      public Builder clearValueDisplay() {
        bitField0_ = (bitField0_ & ~0x00000010);
        valueDisplay_ = 0F;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HeroRelicProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HeroRelicProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HeroRelicProgress)
  }

  public interface CDOTAUserMsg_DamageReportOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DamageReport)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 target_hero_id = 2;
     */
    boolean hasTargetHeroId();
    /**
     * optional int32 target_hero_id = 2;
     */
    int getTargetHeroId();

    /**
     * optional int32 source_hero_id = 3;
     */
    boolean hasSourceHeroId();
    /**
     * optional int32 source_hero_id = 3;
     */
    int getSourceHeroId();

    /**
     * optional int32 damage_amount = 4;
     */
    boolean hasDamageAmount();
    /**
     * optional int32 damage_amount = 4;
     */
    int getDamageAmount();

    /**
     * optional bool broadcast = 5;
     */
    boolean hasBroadcast();
    /**
     * optional bool broadcast = 5;
     */
    boolean getBroadcast();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DamageReport}
   */
  public static final class CDOTAUserMsg_DamageReport extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DamageReport)
      CDOTAUserMsg_DamageReportOrBuilder {
    // Use CDOTAUserMsg_DamageReport.newBuilder() to construct.
    private CDOTAUserMsg_DamageReport(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DamageReport(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DamageReport defaultInstance;
    public static CDOTAUserMsg_DamageReport getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DamageReport getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DamageReport(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetHeroId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              sourceHeroId_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageAmount_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              broadcast_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DamageReport parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DamageReport(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TARGET_HERO_ID_FIELD_NUMBER = 2;
    private int targetHeroId_;
    /**
     * optional int32 target_hero_id = 2;
     */
    public boolean hasTargetHeroId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_hero_id = 2;
     */
    public int getTargetHeroId() {
      return targetHeroId_;
    }

    public static final int SOURCE_HERO_ID_FIELD_NUMBER = 3;
    private int sourceHeroId_;
    /**
     * optional int32 source_hero_id = 3;
     */
    public boolean hasSourceHeroId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 source_hero_id = 3;
     */
    public int getSourceHeroId() {
      return sourceHeroId_;
    }

    public static final int DAMAGE_AMOUNT_FIELD_NUMBER = 4;
    private int damageAmount_;
    /**
     * optional int32 damage_amount = 4;
     */
    public boolean hasDamageAmount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 damage_amount = 4;
     */
    public int getDamageAmount() {
      return damageAmount_;
    }

    public static final int BROADCAST_FIELD_NUMBER = 5;
    private boolean broadcast_;
    /**
     * optional bool broadcast = 5;
     */
    public boolean hasBroadcast() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool broadcast = 5;
     */
    public boolean getBroadcast() {
      return broadcast_;
    }

    private void initFields() {
      playerId_ = 0;
      targetHeroId_ = 0;
      sourceHeroId_ = 0;
      damageAmount_ = 0;
      broadcast_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetHeroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, sourceHeroId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, damageAmount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, broadcast_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetHeroId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, sourceHeroId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, damageAmount_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, broadcast_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DamageReport}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DamageReport)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReportOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        sourceHeroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        broadcast_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DamageReport_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetHeroId_ = targetHeroId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.sourceHeroId_ = sourceHeroId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageAmount_ = damageAmount_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.broadcast_ = broadcast_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTargetHeroId()) {
          setTargetHeroId(other.getTargetHeroId());
        }
        if (other.hasSourceHeroId()) {
          setSourceHeroId(other.getSourceHeroId());
        }
        if (other.hasDamageAmount()) {
          setDamageAmount(other.getDamageAmount());
        }
        if (other.hasBroadcast()) {
          setBroadcast(other.getBroadcast());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DamageReport) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int targetHeroId_ ;
      /**
       * optional int32 target_hero_id = 2;
       */
      public boolean hasTargetHeroId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_hero_id = 2;
       */
      public int getTargetHeroId() {
        return targetHeroId_;
      }
      /**
       * optional int32 target_hero_id = 2;
       */
      public Builder setTargetHeroId(int value) {
        bitField0_ |= 0x00000002;
        targetHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_hero_id = 2;
       */
      public Builder clearTargetHeroId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetHeroId_ = 0;
        onChanged();
        return this;
      }

      private int sourceHeroId_ ;
      /**
       * optional int32 source_hero_id = 3;
       */
      public boolean hasSourceHeroId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 source_hero_id = 3;
       */
      public int getSourceHeroId() {
        return sourceHeroId_;
      }
      /**
       * optional int32 source_hero_id = 3;
       */
      public Builder setSourceHeroId(int value) {
        bitField0_ |= 0x00000004;
        sourceHeroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_hero_id = 3;
       */
      public Builder clearSourceHeroId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        sourceHeroId_ = 0;
        onChanged();
        return this;
      }

      private int damageAmount_ ;
      /**
       * optional int32 damage_amount = 4;
       */
      public boolean hasDamageAmount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public int getDamageAmount() {
        return damageAmount_;
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public Builder setDamageAmount(int value) {
        bitField0_ |= 0x00000008;
        damageAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 damage_amount = 4;
       */
      public Builder clearDamageAmount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageAmount_ = 0;
        onChanged();
        return this;
      }

      private boolean broadcast_ ;
      /**
       * optional bool broadcast = 5;
       */
      public boolean hasBroadcast() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool broadcast = 5;
       */
      public boolean getBroadcast() {
        return broadcast_;
      }
      /**
       * optional bool broadcast = 5;
       */
      public Builder setBroadcast(boolean value) {
        bitField0_ |= 0x00000010;
        broadcast_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool broadcast = 5;
       */
      public Builder clearBroadcast() {
        bitField0_ = (bitField0_ & ~0x00000010);
        broadcast_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DamageReport)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DamageReport(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DamageReport)
  }

  public interface CDOTAUserMsg_SalutePlayerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_SalutePlayer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional uint32 tip_amount = 3;
     */
    boolean hasTipAmount();
    /**
     * optional uint32 tip_amount = 3;
     */
    int getTipAmount();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();

    /**
     * optional string custom_tip_style = 5;
     */
    boolean hasCustomTipStyle();
    /**
     * optional string custom_tip_style = 5;
     */
    java.lang.String getCustomTipStyle();
    /**
     * optional string custom_tip_style = 5;
     */
    com.google.protobuf.ByteString
        getCustomTipStyleBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_SalutePlayer}
   */
  public static final class CDOTAUserMsg_SalutePlayer extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_SalutePlayer)
      CDOTAUserMsg_SalutePlayerOrBuilder {
    // Use CDOTAUserMsg_SalutePlayer.newBuilder() to construct.
    private CDOTAUserMsg_SalutePlayer(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_SalutePlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_SalutePlayer defaultInstance;
    public static CDOTAUserMsg_SalutePlayer getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_SalutePlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_SalutePlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              tipAmount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              customTipStyle_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_SalutePlayer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_SalutePlayer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int TIP_AMOUNT_FIELD_NUMBER = 3;
    private int tipAmount_;
    /**
     * optional uint32 tip_amount = 3;
     */
    public boolean hasTipAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 tip_amount = 3;
     */
    public int getTipAmount() {
      return tipAmount_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int CUSTOM_TIP_STYLE_FIELD_NUMBER = 5;
    private java.lang.Object customTipStyle_;
    /**
     * optional string custom_tip_style = 5;
     */
    public boolean hasCustomTipStyle() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string custom_tip_style = 5;
     */
    public java.lang.String getCustomTipStyle() {
      java.lang.Object ref = customTipStyle_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          customTipStyle_ = s;
        }
        return s;
      }
    }
    /**
     * optional string custom_tip_style = 5;
     */
    public com.google.protobuf.ByteString
        getCustomTipStyleBytes() {
      java.lang.Object ref = customTipStyle_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        customTipStyle_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      tipAmount_ = 0;
      eventId_ = 0;
      customTipStyle_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, tipAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getCustomTipStyleBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, tipAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getCustomTipStyleBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_SalutePlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_SalutePlayer)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        tipAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        customTipStyle_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.tipAmount_ = tipAmount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.customTipStyle_ = customTipStyle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasTipAmount()) {
          setTipAmount(other.getTipAmount());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasCustomTipStyle()) {
          bitField0_ |= 0x00000010;
          customTipStyle_ = other.customTipStyle_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_SalutePlayer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int tipAmount_ ;
      /**
       * optional uint32 tip_amount = 3;
       */
      public boolean hasTipAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public int getTipAmount() {
        return tipAmount_;
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public Builder setTipAmount(int value) {
        bitField0_ |= 0x00000004;
        tipAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tip_amount = 3;
       */
      public Builder clearTipAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        tipAmount_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object customTipStyle_ = "";
      /**
       * optional string custom_tip_style = 5;
       */
      public boolean hasCustomTipStyle() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string custom_tip_style = 5;
       */
      public java.lang.String getCustomTipStyle() {
        java.lang.Object ref = customTipStyle_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            customTipStyle_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string custom_tip_style = 5;
       */
      public com.google.protobuf.ByteString
          getCustomTipStyleBytes() {
        java.lang.Object ref = customTipStyle_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          customTipStyle_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string custom_tip_style = 5;
       */
      public Builder setCustomTipStyle(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        customTipStyle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string custom_tip_style = 5;
       */
      public Builder clearCustomTipStyle() {
        bitField0_ = (bitField0_ & ~0x00000010);
        customTipStyle_ = getDefaultInstance().getCustomTipStyle();
        onChanged();
        return this;
      }
      /**
       * optional string custom_tip_style = 5;
       */
      public Builder setCustomTipStyleBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        customTipStyle_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_SalutePlayer)
    }

    static {
      defaultInstance = new CDOTAUserMsg_SalutePlayer(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_SalutePlayer)
  }

  public interface CDOTAUserMsg_GiftPlayerOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GiftPlayer)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1 [default = -1];
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1 [default = -1];
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2 [default = -1];
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2 [default = -1];
     */
    int getTargetPlayerId();

    /**
     * optional uint32 gift_item_def_index = 3;
     */
    boolean hasGiftItemDefIndex();
    /**
     * optional uint32 gift_item_def_index = 3;
     */
    int getGiftItemDefIndex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GiftPlayer}
   */
  public static final class CDOTAUserMsg_GiftPlayer extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GiftPlayer)
      CDOTAUserMsg_GiftPlayerOrBuilder {
    // Use CDOTAUserMsg_GiftPlayer.newBuilder() to construct.
    private CDOTAUserMsg_GiftPlayer(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GiftPlayer(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GiftPlayer defaultInstance;
    public static CDOTAUserMsg_GiftPlayer getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GiftPlayer getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GiftPlayer(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              giftItemDefIndex_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GiftPlayer_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GiftPlayer_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GiftPlayer parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GiftPlayer(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1 [default = -1];
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1 [default = -1];
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2 [default = -1];
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2 [default = -1];
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int GIFT_ITEM_DEF_INDEX_FIELD_NUMBER = 3;
    private int giftItemDefIndex_;
    /**
     * optional uint32 gift_item_def_index = 3;
     */
    public boolean hasGiftItemDefIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 gift_item_def_index = 3;
     */
    public int getGiftItemDefIndex() {
      return giftItemDefIndex_;
    }

    private void initFields() {
      sourcePlayerId_ = -1;
      targetPlayerId_ = -1;
      giftItemDefIndex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, giftItemDefIndex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, giftItemDefIndex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GiftPlayer}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GiftPlayer)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GiftPlayer_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GiftPlayer_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000002);
        giftItemDefIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GiftPlayer_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.giftItemDefIndex_ = giftItemDefIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasGiftItemDefIndex()) {
          setGiftItemDefIndex(other.getGiftItemDefIndex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GiftPlayer) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ = -1;
      /**
       * optional int32 source_player_id = 1 [default = -1];
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1 [default = -1];
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1 [default = -1];
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1 [default = -1];
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = -1;
        onChanged();
        return this;
      }

      private int targetPlayerId_ = -1;
      /**
       * optional int32 target_player_id = 2 [default = -1];
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2 [default = -1];
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2 [default = -1];
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2 [default = -1];
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = -1;
        onChanged();
        return this;
      }

      private int giftItemDefIndex_ ;
      /**
       * optional uint32 gift_item_def_index = 3;
       */
      public boolean hasGiftItemDefIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 gift_item_def_index = 3;
       */
      public int getGiftItemDefIndex() {
        return giftItemDefIndex_;
      }
      /**
       * optional uint32 gift_item_def_index = 3;
       */
      public Builder setGiftItemDefIndex(int value) {
        bitField0_ |= 0x00000004;
        giftItemDefIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gift_item_def_index = 3;
       */
      public Builder clearGiftItemDefIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        giftItemDefIndex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GiftPlayer)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GiftPlayer(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GiftPlayer)
  }

  public interface CDOTAUserMsg_TipAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_TipAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional string tip_text = 2;
     */
    boolean hasTipText();
    /**
     * optional string tip_text = 2;
     */
    java.lang.String getTipText();
    /**
     * optional string tip_text = 2;
     */
    com.google.protobuf.ByteString
        getTipTextBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_TipAlert}
   */
  public static final class CDOTAUserMsg_TipAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_TipAlert)
      CDOTAUserMsg_TipAlertOrBuilder {
    // Use CDOTAUserMsg_TipAlert.newBuilder() to construct.
    private CDOTAUserMsg_TipAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_TipAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_TipAlert defaultInstance;
    public static CDOTAUserMsg_TipAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_TipAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_TipAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              tipText_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_TipAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_TipAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int TIP_TEXT_FIELD_NUMBER = 2;
    private java.lang.Object tipText_;
    /**
     * optional string tip_text = 2;
     */
    public boolean hasTipText() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional string tip_text = 2;
     */
    public java.lang.String getTipText() {
      java.lang.Object ref = tipText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipText_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_text = 2;
     */
    public com.google.protobuf.ByteString
        getTipTextBytes() {
      java.lang.Object ref = tipText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      playerId_ = 0;
      tipText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getTipTextBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getTipTextBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_TipAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_TipAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        tipText_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_TipAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.tipText_ = tipText_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasTipText()) {
          bitField0_ |= 0x00000002;
          tipText_ = other.tipText_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_TipAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object tipText_ = "";
      /**
       * optional string tip_text = 2;
       */
      public boolean hasTipText() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string tip_text = 2;
       */
      public java.lang.String getTipText() {
        java.lang.Object ref = tipText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_text = 2;
       */
      public com.google.protobuf.ByteString
          getTipTextBytes() {
        java.lang.Object ref = tipText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder setTipText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tipText_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder clearTipText() {
        bitField0_ = (bitField0_ & ~0x00000002);
        tipText_ = getDefaultInstance().getTipText();
        onChanged();
        return this;
      }
      /**
       * optional string tip_text = 2;
       */
      public Builder setTipTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        tipText_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_TipAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_TipAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_TipAlert)
  }

  public interface CDOTAUserMsg_ESArcanaComboOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ESArcanaCombo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 combo_count = 2;
     */
    boolean hasComboCount();
    /**
     * optional uint32 combo_count = 2;
     */
    int getComboCount();

    /**
     * optional uint32 arcana_level = 3;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 3;
     */
    int getArcanaLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ESArcanaCombo}
   */
  public static final class CDOTAUserMsg_ESArcanaCombo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ESArcanaCombo)
      CDOTAUserMsg_ESArcanaComboOrBuilder {
    // Use CDOTAUserMsg_ESArcanaCombo.newBuilder() to construct.
    private CDOTAUserMsg_ESArcanaCombo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ESArcanaCombo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ESArcanaCombo defaultInstance;
    public static CDOTAUserMsg_ESArcanaCombo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ESArcanaCombo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ESArcanaCombo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              comboCount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arcanaLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ESArcanaCombo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ESArcanaCombo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int COMBO_COUNT_FIELD_NUMBER = 2;
    private int comboCount_;
    /**
     * optional uint32 combo_count = 2;
     */
    public boolean hasComboCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 combo_count = 2;
     */
    public int getComboCount() {
      return comboCount_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 3;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 3;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arcana_level = 3;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    private void initFields() {
      ehandle_ = 0;
      comboCount_ = 0;
      arcanaLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arcanaLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arcanaLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ESArcanaCombo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ESArcanaCombo)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        comboCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.comboCount_ = comboCount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arcanaLevel_ = arcanaLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasComboCount()) {
          setComboCount(other.getComboCount());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaCombo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int comboCount_ ;
      /**
       * optional uint32 combo_count = 2;
       */
      public boolean hasComboCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public int getComboCount() {
        return comboCount_;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder setComboCount(int value) {
        bitField0_ |= 0x00000002;
        comboCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder clearComboCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        comboCount_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 3;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000004;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ESArcanaCombo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ESArcanaCombo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ESArcanaCombo)
  }

  public interface CDOTAUserMsg_ESArcanaComboSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ESArcanaComboSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 combo_count = 2;
     */
    boolean hasComboCount();
    /**
     * optional uint32 combo_count = 2;
     */
    int getComboCount();

    /**
     * optional uint32 damage_amount = 3;
     */
    boolean hasDamageAmount();
    /**
     * optional uint32 damage_amount = 3;
     */
    int getDamageAmount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ESArcanaComboSummary}
   */
  public static final class CDOTAUserMsg_ESArcanaComboSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ESArcanaComboSummary)
      CDOTAUserMsg_ESArcanaComboSummaryOrBuilder {
    // Use CDOTAUserMsg_ESArcanaComboSummary.newBuilder() to construct.
    private CDOTAUserMsg_ESArcanaComboSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ESArcanaComboSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ESArcanaComboSummary defaultInstance;
    public static CDOTAUserMsg_ESArcanaComboSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ESArcanaComboSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ESArcanaComboSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              comboCount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              damageAmount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ESArcanaComboSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ESArcanaComboSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int COMBO_COUNT_FIELD_NUMBER = 2;
    private int comboCount_;
    /**
     * optional uint32 combo_count = 2;
     */
    public boolean hasComboCount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 combo_count = 2;
     */
    public int getComboCount() {
      return comboCount_;
    }

    public static final int DAMAGE_AMOUNT_FIELD_NUMBER = 3;
    private int damageAmount_;
    /**
     * optional uint32 damage_amount = 3;
     */
    public boolean hasDamageAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 damage_amount = 3;
     */
    public int getDamageAmount() {
      return damageAmount_;
    }

    private void initFields() {
      ehandle_ = 0;
      comboCount_ = 0;
      damageAmount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, damageAmount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, comboCount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, damageAmount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ESArcanaComboSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ESArcanaComboSummary)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        comboCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        damageAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.comboCount_ = comboCount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.damageAmount_ = damageAmount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasComboCount()) {
          setComboCount(other.getComboCount());
        }
        if (other.hasDamageAmount()) {
          setDamageAmount(other.getDamageAmount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ESArcanaComboSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int comboCount_ ;
      /**
       * optional uint32 combo_count = 2;
       */
      public boolean hasComboCount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public int getComboCount() {
        return comboCount_;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder setComboCount(int value) {
        bitField0_ |= 0x00000002;
        comboCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 combo_count = 2;
       */
      public Builder clearComboCount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        comboCount_ = 0;
        onChanged();
        return this;
      }

      private int damageAmount_ ;
      /**
       * optional uint32 damage_amount = 3;
       */
      public boolean hasDamageAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public int getDamageAmount() {
        return damageAmount_;
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public Builder setDamageAmount(int value) {
        bitField0_ |= 0x00000004;
        damageAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_amount = 3;
       */
      public Builder clearDamageAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        damageAmount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ESArcanaComboSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ESArcanaComboSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ESArcanaComboSummary)
  }

  public interface CDOTAUserMsg_OMArcanaComboOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OMArcanaCombo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 multicast_amount = 2;
     */
    boolean hasMulticastAmount();
    /**
     * optional uint32 multicast_amount = 2;
     */
    int getMulticastAmount();

    /**
     * optional uint32 arcana_level = 3;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 3;
     */
    int getArcanaLevel();

    /**
     * optional uint32 multicast_chance = 4;
     */
    boolean hasMulticastChance();
    /**
     * optional uint32 multicast_chance = 4;
     */
    int getMulticastChance();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OMArcanaCombo}
   */
  public static final class CDOTAUserMsg_OMArcanaCombo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OMArcanaCombo)
      CDOTAUserMsg_OMArcanaComboOrBuilder {
    // Use CDOTAUserMsg_OMArcanaCombo.newBuilder() to construct.
    private CDOTAUserMsg_OMArcanaCombo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OMArcanaCombo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OMArcanaCombo defaultInstance;
    public static CDOTAUserMsg_OMArcanaCombo getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OMArcanaCombo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OMArcanaCombo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              multicastAmount_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              multicastChance_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OMArcanaCombo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OMArcanaCombo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int MULTICAST_AMOUNT_FIELD_NUMBER = 2;
    private int multicastAmount_;
    /**
     * optional uint32 multicast_amount = 2;
     */
    public boolean hasMulticastAmount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 multicast_amount = 2;
     */
    public int getMulticastAmount() {
      return multicastAmount_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 3;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 3;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arcana_level = 3;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int MULTICAST_CHANCE_FIELD_NUMBER = 4;
    private int multicastChance_;
    /**
     * optional uint32 multicast_chance = 4;
     */
    public boolean hasMulticastChance() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 multicast_chance = 4;
     */
    public int getMulticastChance() {
      return multicastChance_;
    }

    private void initFields() {
      ehandle_ = 0;
      multicastAmount_ = 0;
      arcanaLevel_ = 0;
      multicastChance_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, multicastAmount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, multicastChance_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, multicastAmount_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, multicastChance_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OMArcanaCombo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OMArcanaCombo)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaComboOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        multicastAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        multicastChance_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.multicastAmount_ = multicastAmount_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.multicastChance_ = multicastChance_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasMulticastAmount()) {
          setMulticastAmount(other.getMulticastAmount());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasMulticastChance()) {
          setMulticastChance(other.getMulticastChance());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OMArcanaCombo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int multicastAmount_ ;
      /**
       * optional uint32 multicast_amount = 2;
       */
      public boolean hasMulticastAmount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public int getMulticastAmount() {
        return multicastAmount_;
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public Builder setMulticastAmount(int value) {
        bitField0_ |= 0x00000002;
        multicastAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 multicast_amount = 2;
       */
      public Builder clearMulticastAmount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        multicastAmount_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 3;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000004;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 3;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int multicastChance_ ;
      /**
       * optional uint32 multicast_chance = 4;
       */
      public boolean hasMulticastChance() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public int getMulticastChance() {
        return multicastChance_;
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public Builder setMulticastChance(int value) {
        bitField0_ |= 0x00000008;
        multicastChance_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 multicast_chance = 4;
       */
      public Builder clearMulticastChance() {
        bitField0_ = (bitField0_ & ~0x00000008);
        multicastChance_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OMArcanaCombo)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OMArcanaCombo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OMArcanaCombo)
  }

  public interface CDOTAUserMsg_HighFiveCompletedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HighFiveCompleted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional int32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional int32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional int32 player_id_2 = 2;
     */
    int getPlayerId2();

    /**
     * optional bool special_high_five = 3;
     */
    boolean hasSpecialHighFive();
    /**
     * optional bool special_high_five = 3;
     */
    boolean getSpecialHighFive();

    /**
     * optional int32 special_entindex = 4;
     */
    boolean hasSpecialEntindex();
    /**
     * optional int32 special_entindex = 4;
     */
    int getSpecialEntindex();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HighFiveCompleted}
   */
  public static final class CDOTAUserMsg_HighFiveCompleted extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HighFiveCompleted)
      CDOTAUserMsg_HighFiveCompletedOrBuilder {
    // Use CDOTAUserMsg_HighFiveCompleted.newBuilder() to construct.
    private CDOTAUserMsg_HighFiveCompleted(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HighFiveCompleted(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HighFiveCompleted defaultInstance;
    public static CDOTAUserMsg_HighFiveCompleted getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HighFiveCompleted getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HighFiveCompleted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              specialHighFive_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              specialEntindex_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HighFiveCompleted parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HighFiveCompleted(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional int32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional int32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    public static final int SPECIAL_HIGH_FIVE_FIELD_NUMBER = 3;
    private boolean specialHighFive_;
    /**
     * optional bool special_high_five = 3;
     */
    public boolean hasSpecialHighFive() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool special_high_five = 3;
     */
    public boolean getSpecialHighFive() {
      return specialHighFive_;
    }

    public static final int SPECIAL_ENTINDEX_FIELD_NUMBER = 4;
    private int specialEntindex_;
    /**
     * optional int32 special_entindex = 4;
     */
    public boolean hasSpecialEntindex() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 special_entindex = 4;
     */
    public int getSpecialEntindex() {
      return specialEntindex_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
      specialHighFive_ = false;
      specialEntindex_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, specialHighFive_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, specialEntindex_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, specialHighFive_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, specialEntindex_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HighFiveCompleted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HighFiveCompleted)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompletedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        specialHighFive_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        specialEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.specialHighFive_ = specialHighFive_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.specialEntindex_ = specialEntindex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        if (other.hasSpecialHighFive()) {
          setSpecialHighFive(other.getSpecialHighFive());
        }
        if (other.hasSpecialEntindex()) {
          setSpecialEntindex(other.getSpecialEntindex());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveCompleted) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional int32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional int32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      private boolean specialHighFive_ ;
      /**
       * optional bool special_high_five = 3;
       */
      public boolean hasSpecialHighFive() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool special_high_five = 3;
       */
      public boolean getSpecialHighFive() {
        return specialHighFive_;
      }
      /**
       * optional bool special_high_five = 3;
       */
      public Builder setSpecialHighFive(boolean value) {
        bitField0_ |= 0x00000004;
        specialHighFive_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool special_high_five = 3;
       */
      public Builder clearSpecialHighFive() {
        bitField0_ = (bitField0_ & ~0x00000004);
        specialHighFive_ = false;
        onChanged();
        return this;
      }

      private int specialEntindex_ ;
      /**
       * optional int32 special_entindex = 4;
       */
      public boolean hasSpecialEntindex() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 special_entindex = 4;
       */
      public int getSpecialEntindex() {
        return specialEntindex_;
      }
      /**
       * optional int32 special_entindex = 4;
       */
      public Builder setSpecialEntindex(int value) {
        bitField0_ |= 0x00000008;
        specialEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 special_entindex = 4;
       */
      public Builder clearSpecialEntindex() {
        bitField0_ = (bitField0_ & ~0x00000008);
        specialEntindex_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HighFiveCompleted)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HighFiveCompleted(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HighFiveCompleted)
  }

  public interface CDOTAUserMsg_HighFiveLeftHangingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HighFiveLeftHanging)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HighFiveLeftHanging}
   */
  public static final class CDOTAUserMsg_HighFiveLeftHanging extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HighFiveLeftHanging)
      CDOTAUserMsg_HighFiveLeftHangingOrBuilder {
    // Use CDOTAUserMsg_HighFiveLeftHanging.newBuilder() to construct.
    private CDOTAUserMsg_HighFiveLeftHanging(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HighFiveLeftHanging(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HighFiveLeftHanging defaultInstance;
    public static CDOTAUserMsg_HighFiveLeftHanging getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HighFiveLeftHanging getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HighFiveLeftHanging(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HighFiveLeftHanging parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HighFiveLeftHanging(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HighFiveLeftHanging}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HighFiveLeftHanging)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHangingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HighFiveLeftHanging) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HighFiveLeftHanging)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HighFiveLeftHanging(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HighFiveLeftHanging)
  }

  public interface CDOTAUserMsg_ShovelUnearthOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ShovelUnearth)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional bool all_chat = 2;
     */
    boolean hasAllChat();
    /**
     * optional bool all_chat = 2;
     */
    boolean getAllChat();

    /**
     * optional string locstring = 3;
     */
    boolean hasLocstring();
    /**
     * optional string locstring = 3;
     */
    java.lang.String getLocstring();
    /**
     * optional string locstring = 3;
     */
    com.google.protobuf.ByteString
        getLocstringBytes();

    /**
     * optional uint32 quantity = 4;
     */
    boolean hasQuantity();
    /**
     * optional uint32 quantity = 4;
     */
    int getQuantity();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ShovelUnearth}
   */
  public static final class CDOTAUserMsg_ShovelUnearth extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ShovelUnearth)
      CDOTAUserMsg_ShovelUnearthOrBuilder {
    // Use CDOTAUserMsg_ShovelUnearth.newBuilder() to construct.
    private CDOTAUserMsg_ShovelUnearth(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ShovelUnearth(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ShovelUnearth defaultInstance;
    public static CDOTAUserMsg_ShovelUnearth getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ShovelUnearth getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ShovelUnearth(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              allChat_ = input.readBool();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              locstring_ = bs;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              quantity_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ShovelUnearth parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ShovelUnearth(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ALL_CHAT_FIELD_NUMBER = 2;
    private boolean allChat_;
    /**
     * optional bool all_chat = 2;
     */
    public boolean hasAllChat() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool all_chat = 2;
     */
    public boolean getAllChat() {
      return allChat_;
    }

    public static final int LOCSTRING_FIELD_NUMBER = 3;
    private java.lang.Object locstring_;
    /**
     * optional string locstring = 3;
     */
    public boolean hasLocstring() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string locstring = 3;
     */
    public java.lang.String getLocstring() {
      java.lang.Object ref = locstring_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          locstring_ = s;
        }
        return s;
      }
    }
    /**
     * optional string locstring = 3;
     */
    public com.google.protobuf.ByteString
        getLocstringBytes() {
      java.lang.Object ref = locstring_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        locstring_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int QUANTITY_FIELD_NUMBER = 4;
    private int quantity_;
    /**
     * optional uint32 quantity = 4;
     */
    public boolean hasQuantity() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 quantity = 4;
     */
    public int getQuantity() {
      return quantity_;
    }

    private void initFields() {
      playerId_ = 0;
      allChat_ = false;
      locstring_ = "";
      quantity_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, allChat_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getLocstringBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, quantity_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, allChat_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getLocstringBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, quantity_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ShovelUnearth}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ShovelUnearth)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearthOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        allChat_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        locstring_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        quantity_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.allChat_ = allChat_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.locstring_ = locstring_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.quantity_ = quantity_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasAllChat()) {
          setAllChat(other.getAllChat());
        }
        if (other.hasLocstring()) {
          bitField0_ |= 0x00000004;
          locstring_ = other.locstring_;
          onChanged();
        }
        if (other.hasQuantity()) {
          setQuantity(other.getQuantity());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ShovelUnearth) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private boolean allChat_ ;
      /**
       * optional bool all_chat = 2;
       */
      public boolean hasAllChat() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool all_chat = 2;
       */
      public boolean getAllChat() {
        return allChat_;
      }
      /**
       * optional bool all_chat = 2;
       */
      public Builder setAllChat(boolean value) {
        bitField0_ |= 0x00000002;
        allChat_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool all_chat = 2;
       */
      public Builder clearAllChat() {
        bitField0_ = (bitField0_ & ~0x00000002);
        allChat_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object locstring_ = "";
      /**
       * optional string locstring = 3;
       */
      public boolean hasLocstring() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string locstring = 3;
       */
      public java.lang.String getLocstring() {
        java.lang.Object ref = locstring_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            locstring_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string locstring = 3;
       */
      public com.google.protobuf.ByteString
          getLocstringBytes() {
        java.lang.Object ref = locstring_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          locstring_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string locstring = 3;
       */
      public Builder setLocstring(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        locstring_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string locstring = 3;
       */
      public Builder clearLocstring() {
        bitField0_ = (bitField0_ & ~0x00000004);
        locstring_ = getDefaultInstance().getLocstring();
        onChanged();
        return this;
      }
      /**
       * optional string locstring = 3;
       */
      public Builder setLocstringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        locstring_ = value;
        onChanged();
        return this;
      }

      private int quantity_ ;
      /**
       * optional uint32 quantity = 4;
       */
      public boolean hasQuantity() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 quantity = 4;
       */
      public int getQuantity() {
        return quantity_;
      }
      /**
       * optional uint32 quantity = 4;
       */
      public Builder setQuantity(int value) {
        bitField0_ |= 0x00000008;
        quantity_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 quantity = 4;
       */
      public Builder clearQuantity() {
        bitField0_ = (bitField0_ & ~0x00000008);
        quantity_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ShovelUnearth)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ShovelUnearth(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ShovelUnearth)
  }

  public interface CDOTAUserMsg_AllStarEventOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AllStarEvent)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional uint32 point_amount = 3;
     */
    boolean hasPointAmount();
    /**
     * optional uint32 point_amount = 3;
     */
    int getPointAmount();

    /**
     * optional uint32 event_id = 4;
     */
    boolean hasEventId();
    /**
     * optional uint32 event_id = 4;
     */
    int getEventId();

    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    java.util.List 
        getPlayerScoresList();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index);
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    int getPlayerScoresCount();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    java.util.List 
        getPlayerScoresOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AllStarEvent}
   */
  public static final class CDOTAUserMsg_AllStarEvent extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AllStarEvent)
      CDOTAUserMsg_AllStarEventOrBuilder {
    // Use CDOTAUserMsg_AllStarEvent.newBuilder() to construct.
    private CDOTAUserMsg_AllStarEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AllStarEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AllStarEvent defaultInstance;
    public static CDOTAUserMsg_AllStarEvent getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AllStarEvent getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AllStarEvent(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              pointAmount_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              eventId_ = input.readUInt32();
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                playerScores_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000010;
              }
              playerScores_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          playerScores_ = java.util.Collections.unmodifiableList(playerScores_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AllStarEvent parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AllStarEvent(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface PlayerScoreOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AllStarEvent.PlayerScore)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 player_id = 1;
       */
      boolean hasPlayerId();
      /**
       * optional int32 player_id = 1;
       */
      int getPlayerId();

      /**
       * optional uint32 score_sans_kda = 2;
       */
      boolean hasScoreSansKda();
      /**
       * optional uint32 score_sans_kda = 2;
       */
      int getScoreSansKda();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AllStarEvent.PlayerScore}
     */
    public static final class PlayerScore extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AllStarEvent.PlayerScore)
        PlayerScoreOrBuilder {
      // Use PlayerScore.newBuilder() to construct.
      private PlayerScore(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerScore(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PlayerScore defaultInstance;
      public static PlayerScore getDefaultInstance() {
        return defaultInstance;
      }

      public PlayerScore getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PlayerScore(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                scoreSansKda_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PlayerScore parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerScore(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int PLAYER_ID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int SCORE_SANS_KDA_FIELD_NUMBER = 2;
      private int scoreSansKda_;
      /**
       * optional uint32 score_sans_kda = 2;
       */
      public boolean hasScoreSansKda() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 score_sans_kda = 2;
       */
      public int getScoreSansKda() {
        return scoreSansKda_;
      }

      private void initFields() {
        playerId_ = 0;
        scoreSansKda_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(2, scoreSansKda_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(2, scoreSansKda_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_AllStarEvent.PlayerScore}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AllStarEvent.PlayerScore)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          scoreSansKda_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.scoreSansKda_ = scoreSansKda_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasScoreSansKda()) {
            setScoreSansKda(other.getScoreSansKda());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * optional int32 player_id = 1;
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 player_id = 1;
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int scoreSansKda_ ;
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public boolean hasScoreSansKda() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public int getScoreSansKda() {
          return scoreSansKda_;
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public Builder setScoreSansKda(int value) {
          bitField0_ |= 0x00000002;
          scoreSansKda_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 score_sans_kda = 2;
         */
        public Builder clearScoreSansKda() {
          bitField0_ = (bitField0_ & ~0x00000002);
          scoreSansKda_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AllStarEvent.PlayerScore)
      }

      static {
        defaultInstance = new PlayerScore(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AllStarEvent.PlayerScore)
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int POINT_AMOUNT_FIELD_NUMBER = 3;
    private int pointAmount_;
    /**
     * optional uint32 point_amount = 3;
     */
    public boolean hasPointAmount() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 point_amount = 3;
     */
    public int getPointAmount() {
      return pointAmount_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 4;
    private int eventId_;
    /**
     * optional uint32 event_id = 4;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 event_id = 4;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int PLAYER_SCORES_FIELD_NUMBER = 5;
    private java.util.List playerScores_;
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public java.util.List getPlayerScoresList() {
      return playerScores_;
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public java.util.List 
        getPlayerScoresOrBuilderList() {
      return playerScores_;
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public int getPlayerScoresCount() {
      return playerScores_.size();
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index) {
      return playerScores_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
        int index) {
      return playerScores_.get(index);
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      pointAmount_ = 0;
      eventId_ = 0;
      playerScores_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, pointAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, eventId_);
      }
      for (int i = 0; i < playerScores_.size(); i++) {
        output.writeMessage(5, playerScores_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, pointAmount_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, eventId_);
      }
      for (int i = 0; i < playerScores_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, playerScores_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AllStarEvent}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AllStarEvent)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerScoresFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        pointAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (playerScoresBuilder_ == null) {
          playerScores_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          playerScoresBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.pointAmount_ = pointAmount_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.eventId_ = eventId_;
        if (playerScoresBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            playerScores_ = java.util.Collections.unmodifiableList(playerScores_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.playerScores_ = playerScores_;
        } else {
          result.playerScores_ = playerScoresBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasPointAmount()) {
          setPointAmount(other.getPointAmount());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (playerScoresBuilder_ == null) {
          if (!other.playerScores_.isEmpty()) {
            if (playerScores_.isEmpty()) {
              playerScores_ = other.playerScores_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensurePlayerScoresIsMutable();
              playerScores_.addAll(other.playerScores_);
            }
            onChanged();
          }
        } else {
          if (!other.playerScores_.isEmpty()) {
            if (playerScoresBuilder_.isEmpty()) {
              playerScoresBuilder_.dispose();
              playerScoresBuilder_ = null;
              playerScores_ = other.playerScores_;
              bitField0_ = (bitField0_ & ~0x00000010);
              playerScoresBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerScoresFieldBuilder() : null;
            } else {
              playerScoresBuilder_.addAllMessages(other.playerScores_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int pointAmount_ ;
      /**
       * optional uint32 point_amount = 3;
       */
      public boolean hasPointAmount() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public int getPointAmount() {
        return pointAmount_;
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public Builder setPointAmount(int value) {
        bitField0_ |= 0x00000004;
        pointAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 point_amount = 3;
       */
      public Builder clearPointAmount() {
        bitField0_ = (bitField0_ & ~0x00000004);
        pointAmount_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * optional uint32 event_id = 4;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 event_id = 4;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000008;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_id = 4;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List playerScores_ =
        java.util.Collections.emptyList();
      private void ensurePlayerScoresIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          playerScores_ = new java.util.ArrayList(playerScores_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder> playerScoresBuilder_;

      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List getPlayerScoresList() {
        if (playerScoresBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerScores_);
        } else {
          return playerScoresBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public int getPlayerScoresCount() {
        if (playerScoresBuilder_ == null) {
          return playerScores_.size();
        } else {
          return playerScoresBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore getPlayerScores(int index) {
        if (playerScoresBuilder_ == null) {
          return playerScores_.get(index);
        } else {
          return playerScoresBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder setPlayerScores(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.set(index, value);
          onChanged();
        } else {
          playerScoresBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder setPlayerScores(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.add(value);
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore value) {
        if (playerScoresBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerScoresIsMutable();
          playerScores_.add(index, value);
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.add(builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addPlayerScores(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder builderForValue) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerScoresBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder addAllPlayerScores(
          java.lang.Iterable values) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerScores_);
          onChanged();
        } else {
          playerScoresBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder clearPlayerScores() {
        if (playerScoresBuilder_ == null) {
          playerScores_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          playerScoresBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public Builder removePlayerScores(int index) {
        if (playerScoresBuilder_ == null) {
          ensurePlayerScoresIsMutable();
          playerScores_.remove(index);
          onChanged();
        } else {
          playerScoresBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder getPlayerScoresBuilder(
          int index) {
        return getPlayerScoresFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder getPlayerScoresOrBuilder(
          int index) {
        if (playerScoresBuilder_ == null) {
          return playerScores_.get(index);  } else {
          return playerScoresBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List 
           getPlayerScoresOrBuilderList() {
        if (playerScoresBuilder_ != null) {
          return playerScoresBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerScores_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder addPlayerScoresBuilder() {
        return getPlayerScoresFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder addPlayerScoresBuilder(
          int index) {
        return getPlayerScoresFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_AllStarEvent.PlayerScore player_scores = 5;
       */
      public java.util.List 
           getPlayerScoresBuilderList() {
        return getPlayerScoresFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder> 
          getPlayerScoresFieldBuilder() {
        if (playerScoresBuilder_ == null) {
          playerScoresBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScore.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AllStarEvent.PlayerScoreOrBuilder>(
                  playerScores_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          playerScores_ = null;
        }
        return playerScoresBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AllStarEvent)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AllStarEvent(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AllStarEvent)
  }

  public interface CDOTAUserMsg_QueuedOrderRemovedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QueuedOrderRemoved)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    java.util.List getUnitOrderSequenceList();
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    int getUnitOrderSequenceCount();
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    int getUnitOrderSequence(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QueuedOrderRemoved}
   */
  public static final class CDOTAUserMsg_QueuedOrderRemoved extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QueuedOrderRemoved)
      CDOTAUserMsg_QueuedOrderRemovedOrBuilder {
    // Use CDOTAUserMsg_QueuedOrderRemoved.newBuilder() to construct.
    private CDOTAUserMsg_QueuedOrderRemoved(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QueuedOrderRemoved(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QueuedOrderRemoved defaultInstance;
    public static CDOTAUserMsg_QueuedOrderRemoved getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QueuedOrderRemoved getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QueuedOrderRemoved(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                unitOrderSequence_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              unitOrderSequence_.add(input.readUInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                unitOrderSequence_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                unitOrderSequence_.add(input.readUInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = java.util.Collections.unmodifiableList(unitOrderSequence_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QueuedOrderRemoved parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QueuedOrderRemoved(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int UNIT_ORDER_SEQUENCE_FIELD_NUMBER = 1;
    private java.util.List unitOrderSequence_;
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public java.util.List
        getUnitOrderSequenceList() {
      return unitOrderSequence_;
    }
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public int getUnitOrderSequenceCount() {
      return unitOrderSequence_.size();
    }
    /**
     * repeated uint32 unit_order_sequence = 1;
     */
    public int getUnitOrderSequence(int index) {
      return unitOrderSequence_.get(index);
    }

    private void initFields() {
      unitOrderSequence_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < unitOrderSequence_.size(); i++) {
        output.writeUInt32(1, unitOrderSequence_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < unitOrderSequence_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeUInt32SizeNoTag(unitOrderSequence_.get(i));
        }
        size += dataSize;
        size += 1 * getUnitOrderSequenceList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QueuedOrderRemoved}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QueuedOrderRemoved)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemovedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        unitOrderSequence_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = java.util.Collections.unmodifiableList(unitOrderSequence_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.unitOrderSequence_ = unitOrderSequence_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved.getDefaultInstance()) return this;
        if (!other.unitOrderSequence_.isEmpty()) {
          if (unitOrderSequence_.isEmpty()) {
            unitOrderSequence_ = other.unitOrderSequence_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureUnitOrderSequenceIsMutable();
            unitOrderSequence_.addAll(other.unitOrderSequence_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QueuedOrderRemoved) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List unitOrderSequence_ = java.util.Collections.emptyList();
      private void ensureUnitOrderSequenceIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          unitOrderSequence_ = new java.util.ArrayList(unitOrderSequence_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public java.util.List
          getUnitOrderSequenceList() {
        return java.util.Collections.unmodifiableList(unitOrderSequence_);
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public int getUnitOrderSequenceCount() {
        return unitOrderSequence_.size();
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public int getUnitOrderSequence(int index) {
        return unitOrderSequence_.get(index);
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder setUnitOrderSequence(
          int index, int value) {
        ensureUnitOrderSequenceIsMutable();
        unitOrderSequence_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder addUnitOrderSequence(int value) {
        ensureUnitOrderSequenceIsMutable();
        unitOrderSequence_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder addAllUnitOrderSequence(
          java.lang.Iterable values) {
        ensureUnitOrderSequenceIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, unitOrderSequence_);
        onChanged();
        return this;
      }
      /**
       * repeated uint32 unit_order_sequence = 1;
       */
      public Builder clearUnitOrderSequence() {
        unitOrderSequence_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QueuedOrderRemoved)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QueuedOrderRemoved(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QueuedOrderRemoved)
  }

  public interface CDOTAUserMsg_DebugChallengeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DebugChallenge)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required uint32 challenge_type = 1;
     */
    boolean hasChallengeType();
    /**
     * required uint32 challenge_type = 1;
     */
    int getChallengeType();

    /**
     * required uint32 challenge_query_id = 2;
     */
    boolean hasChallengeQueryId();
    /**
     * required uint32 challenge_query_id = 2;
     */
    int getChallengeQueryId();

    /**
     * required uint32 event_id = 3;
     */
    boolean hasEventId();
    /**
     * required uint32 event_id = 3;
     */
    int getEventId();

    /**
     * optional uint32 instance_id = 4;
     */
    boolean hasInstanceId();
    /**
     * optional uint32 instance_id = 4;
     */
    int getInstanceId();

    /**
     * optional uint32 challenge_var_0 = 5;
     */
    boolean hasChallengeVar0();
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    int getChallengeVar0();

    /**
     * optional uint32 challenge_var_1 = 6;
     */
    boolean hasChallengeVar1();
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    int getChallengeVar1();

    /**
     * optional uint32 challenge_max_rank = 7;
     */
    boolean hasChallengeMaxRank();
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    int getChallengeMaxRank();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DebugChallenge}
   */
  public static final class CDOTAUserMsg_DebugChallenge extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DebugChallenge)
      CDOTAUserMsg_DebugChallengeOrBuilder {
    // Use CDOTAUserMsg_DebugChallenge.newBuilder() to construct.
    private CDOTAUserMsg_DebugChallenge(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DebugChallenge(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DebugChallenge defaultInstance;
    public static CDOTAUserMsg_DebugChallenge getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DebugChallenge getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DebugChallenge(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              challengeType_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              challengeQueryId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              eventId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              instanceId_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              challengeVar0_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              challengeVar1_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              challengeMaxRank_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DebugChallenge parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DebugChallenge(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CHALLENGE_TYPE_FIELD_NUMBER = 1;
    private int challengeType_;
    /**
     * required uint32 challenge_type = 1;
     */
    public boolean hasChallengeType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required uint32 challenge_type = 1;
     */
    public int getChallengeType() {
      return challengeType_;
    }

    public static final int CHALLENGE_QUERY_ID_FIELD_NUMBER = 2;
    private int challengeQueryId_;
    /**
     * required uint32 challenge_query_id = 2;
     */
    public boolean hasChallengeQueryId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required uint32 challenge_query_id = 2;
     */
    public int getChallengeQueryId() {
      return challengeQueryId_;
    }

    public static final int EVENT_ID_FIELD_NUMBER = 3;
    private int eventId_;
    /**
     * required uint32 event_id = 3;
     */
    public boolean hasEventId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required uint32 event_id = 3;
     */
    public int getEventId() {
      return eventId_;
    }

    public static final int INSTANCE_ID_FIELD_NUMBER = 4;
    private int instanceId_;
    /**
     * optional uint32 instance_id = 4;
     */
    public boolean hasInstanceId() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 instance_id = 4;
     */
    public int getInstanceId() {
      return instanceId_;
    }

    public static final int CHALLENGE_VAR_0_FIELD_NUMBER = 5;
    private int challengeVar0_;
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    public boolean hasChallengeVar0() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 challenge_var_0 = 5;
     */
    public int getChallengeVar0() {
      return challengeVar0_;
    }

    public static final int CHALLENGE_VAR_1_FIELD_NUMBER = 6;
    private int challengeVar1_;
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    public boolean hasChallengeVar1() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 challenge_var_1 = 6;
     */
    public int getChallengeVar1() {
      return challengeVar1_;
    }

    public static final int CHALLENGE_MAX_RANK_FIELD_NUMBER = 7;
    private int challengeMaxRank_;
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    public boolean hasChallengeMaxRank() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 challenge_max_rank = 7;
     */
    public int getChallengeMaxRank() {
      return challengeMaxRank_;
    }

    private void initFields() {
      challengeType_ = 0;
      challengeQueryId_ = 0;
      eventId_ = 0;
      instanceId_ = 0;
      challengeVar0_ = 0;
      challengeVar1_ = 0;
      challengeMaxRank_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasChallengeType()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasChallengeQueryId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEventId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, challengeType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, challengeQueryId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, eventId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, instanceId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, challengeVar0_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, challengeVar1_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, challengeMaxRank_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, challengeType_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, challengeQueryId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, eventId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, instanceId_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, challengeVar0_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, challengeVar1_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, challengeMaxRank_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DebugChallenge}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DebugChallenge)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallengeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        challengeType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        challengeQueryId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        eventId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        instanceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeVar0_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeVar1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeMaxRank_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.challengeType_ = challengeType_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.challengeQueryId_ = challengeQueryId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.eventId_ = eventId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.instanceId_ = instanceId_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.challengeVar0_ = challengeVar0_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.challengeVar1_ = challengeVar1_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.challengeMaxRank_ = challengeMaxRank_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge.getDefaultInstance()) return this;
        if (other.hasChallengeType()) {
          setChallengeType(other.getChallengeType());
        }
        if (other.hasChallengeQueryId()) {
          setChallengeQueryId(other.getChallengeQueryId());
        }
        if (other.hasEventId()) {
          setEventId(other.getEventId());
        }
        if (other.hasInstanceId()) {
          setInstanceId(other.getInstanceId());
        }
        if (other.hasChallengeVar0()) {
          setChallengeVar0(other.getChallengeVar0());
        }
        if (other.hasChallengeVar1()) {
          setChallengeVar1(other.getChallengeVar1());
        }
        if (other.hasChallengeMaxRank()) {
          setChallengeMaxRank(other.getChallengeMaxRank());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasChallengeType()) {
          
          return false;
        }
        if (!hasChallengeQueryId()) {
          
          return false;
        }
        if (!hasEventId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DebugChallenge) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int challengeType_ ;
      /**
       * required uint32 challenge_type = 1;
       */
      public boolean hasChallengeType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public int getChallengeType() {
        return challengeType_;
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public Builder setChallengeType(int value) {
        bitField0_ |= 0x00000001;
        challengeType_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 challenge_type = 1;
       */
      public Builder clearChallengeType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        challengeType_ = 0;
        onChanged();
        return this;
      }

      private int challengeQueryId_ ;
      /**
       * required uint32 challenge_query_id = 2;
       */
      public boolean hasChallengeQueryId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public int getChallengeQueryId() {
        return challengeQueryId_;
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public Builder setChallengeQueryId(int value) {
        bitField0_ |= 0x00000002;
        challengeQueryId_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 challenge_query_id = 2;
       */
      public Builder clearChallengeQueryId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        challengeQueryId_ = 0;
        onChanged();
        return this;
      }

      private int eventId_ ;
      /**
       * required uint32 event_id = 3;
       */
      public boolean hasEventId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required uint32 event_id = 3;
       */
      public int getEventId() {
        return eventId_;
      }
      /**
       * required uint32 event_id = 3;
       */
      public Builder setEventId(int value) {
        bitField0_ |= 0x00000004;
        eventId_ = value;
        onChanged();
        return this;
      }
      /**
       * required uint32 event_id = 3;
       */
      public Builder clearEventId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        eventId_ = 0;
        onChanged();
        return this;
      }

      private int instanceId_ ;
      /**
       * optional uint32 instance_id = 4;
       */
      public boolean hasInstanceId() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public int getInstanceId() {
        return instanceId_;
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public Builder setInstanceId(int value) {
        bitField0_ |= 0x00000008;
        instanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 instance_id = 4;
       */
      public Builder clearInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000008);
        instanceId_ = 0;
        onChanged();
        return this;
      }

      private int challengeVar0_ ;
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public boolean hasChallengeVar0() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public int getChallengeVar0() {
        return challengeVar0_;
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public Builder setChallengeVar0(int value) {
        bitField0_ |= 0x00000010;
        challengeVar0_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_var_0 = 5;
       */
      public Builder clearChallengeVar0() {
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeVar0_ = 0;
        onChanged();
        return this;
      }

      private int challengeVar1_ ;
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public boolean hasChallengeVar1() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public int getChallengeVar1() {
        return challengeVar1_;
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public Builder setChallengeVar1(int value) {
        bitField0_ |= 0x00000020;
        challengeVar1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_var_1 = 6;
       */
      public Builder clearChallengeVar1() {
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeVar1_ = 0;
        onChanged();
        return this;
      }

      private int challengeMaxRank_ ;
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public boolean hasChallengeMaxRank() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public int getChallengeMaxRank() {
        return challengeMaxRank_;
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public Builder setChallengeMaxRank(int value) {
        bitField0_ |= 0x00000040;
        challengeMaxRank_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_max_rank = 7;
       */
      public Builder clearChallengeMaxRank() {
        bitField0_ = (bitField0_ & ~0x00000040);
        challengeMaxRank_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DebugChallenge)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DebugChallenge(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DebugChallenge)
  }

  public interface CDOTAUserMsg_FoundNeutralItemOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_FoundNeutralItem)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional int32 item_ability_id = 2;
     */
    boolean hasItemAbilityId();
    /**
     * optional int32 item_ability_id = 2;
     */
    int getItemAbilityId();

    /**
     * optional uint32 item_tier = 3;
     */
    boolean hasItemTier();
    /**
     * optional uint32 item_tier = 3;
     */
    int getItemTier();

    /**
     * optional uint32 tier_item_count = 4;
     */
    boolean hasTierItemCount();
    /**
     * optional uint32 tier_item_count = 4;
     */
    int getTierItemCount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_FoundNeutralItem}
   */
  public static final class CDOTAUserMsg_FoundNeutralItem extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_FoundNeutralItem)
      CDOTAUserMsg_FoundNeutralItemOrBuilder {
    // Use CDOTAUserMsg_FoundNeutralItem.newBuilder() to construct.
    private CDOTAUserMsg_FoundNeutralItem(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_FoundNeutralItem(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_FoundNeutralItem defaultInstance;
    public static CDOTAUserMsg_FoundNeutralItem getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_FoundNeutralItem getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_FoundNeutralItem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              itemAbilityId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              itemTier_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              tierItemCount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_FoundNeutralItem parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_FoundNeutralItem(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ITEM_ABILITY_ID_FIELD_NUMBER = 2;
    private int itemAbilityId_;
    /**
     * optional int32 item_ability_id = 2;
     */
    public boolean hasItemAbilityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 item_ability_id = 2;
     */
    public int getItemAbilityId() {
      return itemAbilityId_;
    }

    public static final int ITEM_TIER_FIELD_NUMBER = 3;
    private int itemTier_;
    /**
     * optional uint32 item_tier = 3;
     */
    public boolean hasItemTier() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 item_tier = 3;
     */
    public int getItemTier() {
      return itemTier_;
    }

    public static final int TIER_ITEM_COUNT_FIELD_NUMBER = 4;
    private int tierItemCount_;
    /**
     * optional uint32 tier_item_count = 4;
     */
    public boolean hasTierItemCount() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 tier_item_count = 4;
     */
    public int getTierItemCount() {
      return tierItemCount_;
    }

    private void initFields() {
      playerId_ = 0;
      itemAbilityId_ = 0;
      itemTier_ = 0;
      tierItemCount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, itemTier_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, tierItemCount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, itemAbilityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, itemTier_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, tierItemCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_FoundNeutralItem}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_FoundNeutralItem)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        itemAbilityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        itemTier_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        tierItemCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.itemAbilityId_ = itemAbilityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.itemTier_ = itemTier_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tierItemCount_ = tierItemCount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasItemAbilityId()) {
          setItemAbilityId(other.getItemAbilityId());
        }
        if (other.hasItemTier()) {
          setItemTier(other.getItemTier());
        }
        if (other.hasTierItemCount()) {
          setTierItemCount(other.getTierItemCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FoundNeutralItem) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private int itemAbilityId_ ;
      /**
       * optional int32 item_ability_id = 2;
       */
      public boolean hasItemAbilityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public int getItemAbilityId() {
        return itemAbilityId_;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder setItemAbilityId(int value) {
        bitField0_ |= 0x00000002;
        itemAbilityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 item_ability_id = 2;
       */
      public Builder clearItemAbilityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        itemAbilityId_ = 0;
        onChanged();
        return this;
      }

      private int itemTier_ ;
      /**
       * optional uint32 item_tier = 3;
       */
      public boolean hasItemTier() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public int getItemTier() {
        return itemTier_;
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public Builder setItemTier(int value) {
        bitField0_ |= 0x00000004;
        itemTier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 item_tier = 3;
       */
      public Builder clearItemTier() {
        bitField0_ = (bitField0_ & ~0x00000004);
        itemTier_ = 0;
        onChanged();
        return this;
      }

      private int tierItemCount_ ;
      /**
       * optional uint32 tier_item_count = 4;
       */
      public boolean hasTierItemCount() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public int getTierItemCount() {
        return tierItemCount_;
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public Builder setTierItemCount(int value) {
        bitField0_ |= 0x00000008;
        tierItemCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 tier_item_count = 4;
       */
      public Builder clearTierItemCount() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tierItemCount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_FoundNeutralItem)
    }

    static {
      defaultInstance = new CDOTAUserMsg_FoundNeutralItem(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_FoundNeutralItem)
  }

  public interface CDOTAUserMsg_OutpostCapturedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OutpostCaptured)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 outpost_entindex = 1;
     */
    boolean hasOutpostEntindex();
    /**
     * optional int32 outpost_entindex = 1;
     */
    int getOutpostEntindex();

    /**
     * optional uint32 team_id = 2;
     */
    boolean hasTeamId();
    /**
     * optional uint32 team_id = 2;
     */
    int getTeamId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OutpostCaptured}
   */
  public static final class CDOTAUserMsg_OutpostCaptured extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OutpostCaptured)
      CDOTAUserMsg_OutpostCapturedOrBuilder {
    // Use CDOTAUserMsg_OutpostCaptured.newBuilder() to construct.
    private CDOTAUserMsg_OutpostCaptured(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OutpostCaptured(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OutpostCaptured defaultInstance;
    public static CDOTAUserMsg_OutpostCaptured getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OutpostCaptured getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OutpostCaptured(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              outpostEntindex_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              teamId_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OutpostCaptured parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OutpostCaptured(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int OUTPOST_ENTINDEX_FIELD_NUMBER = 1;
    private int outpostEntindex_;
    /**
     * optional int32 outpost_entindex = 1;
     */
    public boolean hasOutpostEntindex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 outpost_entindex = 1;
     */
    public int getOutpostEntindex() {
      return outpostEntindex_;
    }

    public static final int TEAM_ID_FIELD_NUMBER = 2;
    private int teamId_;
    /**
     * optional uint32 team_id = 2;
     */
    public boolean hasTeamId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 team_id = 2;
     */
    public int getTeamId() {
      return teamId_;
    }

    private void initFields() {
      outpostEntindex_ = 0;
      teamId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, outpostEntindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, teamId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, outpostEntindex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, teamId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OutpostCaptured}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OutpostCaptured)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCapturedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        outpostEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        teamId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.outpostEntindex_ = outpostEntindex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.teamId_ = teamId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured.getDefaultInstance()) return this;
        if (other.hasOutpostEntindex()) {
          setOutpostEntindex(other.getOutpostEntindex());
        }
        if (other.hasTeamId()) {
          setTeamId(other.getTeamId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostCaptured) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int outpostEntindex_ ;
      /**
       * optional int32 outpost_entindex = 1;
       */
      public boolean hasOutpostEntindex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 outpost_entindex = 1;
       */
      public int getOutpostEntindex() {
        return outpostEntindex_;
      }
      /**
       * optional int32 outpost_entindex = 1;
       */
      public Builder setOutpostEntindex(int value) {
        bitField0_ |= 0x00000001;
        outpostEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 outpost_entindex = 1;
       */
      public Builder clearOutpostEntindex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        outpostEntindex_ = 0;
        onChanged();
        return this;
      }

      private int teamId_ ;
      /**
       * optional uint32 team_id = 2;
       */
      public boolean hasTeamId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 team_id = 2;
       */
      public int getTeamId() {
        return teamId_;
      }
      /**
       * optional uint32 team_id = 2;
       */
      public Builder setTeamId(int value) {
        bitField0_ |= 0x00000002;
        teamId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team_id = 2;
       */
      public Builder clearTeamId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        teamId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OutpostCaptured)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OutpostCaptured(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OutpostCaptured)
  }

  public interface CDOTAUserMsg_OutpostGrantedXPOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_OutpostGrantedXP)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 team_id = 1;
     */
    boolean hasTeamId();
    /**
     * optional uint32 team_id = 1;
     */
    int getTeamId();

    /**
     * optional uint32 xp_amount = 2;
     */
    boolean hasXpAmount();
    /**
     * optional uint32 xp_amount = 2;
     */
    int getXpAmount();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_OutpostGrantedXP}
   */
  public static final class CDOTAUserMsg_OutpostGrantedXP extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_OutpostGrantedXP)
      CDOTAUserMsg_OutpostGrantedXPOrBuilder {
    // Use CDOTAUserMsg_OutpostGrantedXP.newBuilder() to construct.
    private CDOTAUserMsg_OutpostGrantedXP(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_OutpostGrantedXP(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_OutpostGrantedXP defaultInstance;
    public static CDOTAUserMsg_OutpostGrantedXP getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_OutpostGrantedXP getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_OutpostGrantedXP(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              teamId_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              xpAmount_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_OutpostGrantedXP parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_OutpostGrantedXP(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TEAM_ID_FIELD_NUMBER = 1;
    private int teamId_;
    /**
     * optional uint32 team_id = 1;
     */
    public boolean hasTeamId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 team_id = 1;
     */
    public int getTeamId() {
      return teamId_;
    }

    public static final int XP_AMOUNT_FIELD_NUMBER = 2;
    private int xpAmount_;
    /**
     * optional uint32 xp_amount = 2;
     */
    public boolean hasXpAmount() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 xp_amount = 2;
     */
    public int getXpAmount() {
      return xpAmount_;
    }

    private void initFields() {
      teamId_ = 0;
      xpAmount_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, teamId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, xpAmount_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, teamId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, xpAmount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_OutpostGrantedXP}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_OutpostGrantedXP)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXPOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        teamId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        xpAmount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.teamId_ = teamId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.xpAmount_ = xpAmount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP.getDefaultInstance()) return this;
        if (other.hasTeamId()) {
          setTeamId(other.getTeamId());
        }
        if (other.hasXpAmount()) {
          setXpAmount(other.getXpAmount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_OutpostGrantedXP) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int teamId_ ;
      /**
       * optional uint32 team_id = 1;
       */
      public boolean hasTeamId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 team_id = 1;
       */
      public int getTeamId() {
        return teamId_;
      }
      /**
       * optional uint32 team_id = 1;
       */
      public Builder setTeamId(int value) {
        bitField0_ |= 0x00000001;
        teamId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 team_id = 1;
       */
      public Builder clearTeamId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        teamId_ = 0;
        onChanged();
        return this;
      }

      private int xpAmount_ ;
      /**
       * optional uint32 xp_amount = 2;
       */
      public boolean hasXpAmount() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public int getXpAmount() {
        return xpAmount_;
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public Builder setXpAmount(int value) {
        bitField0_ |= 0x00000002;
        xpAmount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xp_amount = 2;
       */
      public Builder clearXpAmount() {
        bitField0_ = (bitField0_ & ~0x00000002);
        xpAmount_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_OutpostGrantedXP)
    }

    static {
      defaultInstance = new CDOTAUserMsg_OutpostGrantedXP(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_OutpostGrantedXP)
  }

  public interface CDOTAUserMsg_MoveCameraToUnitOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MoveCameraToUnit)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 unit_ehandle = 1;
     */
    boolean hasUnitEhandle();
    /**
     * optional uint32 unit_ehandle = 1;
     */
    int getUnitEhandle();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MoveCameraToUnit}
   */
  public static final class CDOTAUserMsg_MoveCameraToUnit extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MoveCameraToUnit)
      CDOTAUserMsg_MoveCameraToUnitOrBuilder {
    // Use CDOTAUserMsg_MoveCameraToUnit.newBuilder() to construct.
    private CDOTAUserMsg_MoveCameraToUnit(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MoveCameraToUnit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MoveCameraToUnit defaultInstance;
    public static CDOTAUserMsg_MoveCameraToUnit getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MoveCameraToUnit getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MoveCameraToUnit(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              unitEhandle_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MoveCameraToUnit parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MoveCameraToUnit(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int UNIT_EHANDLE_FIELD_NUMBER = 1;
    private int unitEhandle_;
    /**
     * optional uint32 unit_ehandle = 1;
     */
    public boolean hasUnitEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 unit_ehandle = 1;
     */
    public int getUnitEhandle() {
      return unitEhandle_;
    }

    private void initFields() {
      unitEhandle_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, unitEhandle_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, unitEhandle_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MoveCameraToUnit}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MoveCameraToUnit)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnitOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        unitEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.unitEhandle_ = unitEhandle_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit.getDefaultInstance()) return this;
        if (other.hasUnitEhandle()) {
          setUnitEhandle(other.getUnitEhandle());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MoveCameraToUnit) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int unitEhandle_ ;
      /**
       * optional uint32 unit_ehandle = 1;
       */
      public boolean hasUnitEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 unit_ehandle = 1;
       */
      public int getUnitEhandle() {
        return unitEhandle_;
      }
      /**
       * optional uint32 unit_ehandle = 1;
       */
      public Builder setUnitEhandle(int value) {
        bitField0_ |= 0x00000001;
        unitEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 unit_ehandle = 1;
       */
      public Builder clearUnitEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        unitEhandle_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MoveCameraToUnit)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MoveCameraToUnit(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MoveCameraToUnit)
  }

  public interface CDOTAUserMsg_PauseMinigameDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PauseMinigameData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    java.util.List 
        getDataBitsList();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index);
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    int getDataBitsCount();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    java.util.List 
        getDataBitsOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PauseMinigameData}
   */
  public static final class CDOTAUserMsg_PauseMinigameData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PauseMinigameData)
      CDOTAUserMsg_PauseMinigameDataOrBuilder {
    // Use CDOTAUserMsg_PauseMinigameData.newBuilder() to construct.
    private CDOTAUserMsg_PauseMinigameData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PauseMinigameData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PauseMinigameData defaultInstance;
    public static CDOTAUserMsg_PauseMinigameData getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PauseMinigameData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PauseMinigameData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                dataBits_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              dataBits_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          dataBits_ = java.util.Collections.unmodifiableList(dataBits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PauseMinigameData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PauseMinigameData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface DataBitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PauseMinigameData.DataBit)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint32 index = 1;
       */
      boolean hasIndex();
      /**
       * optional uint32 index = 1;
       */
      int getIndex();

      /**
       * optional int32 data = 2;
       */
      boolean hasData();
      /**
       * optional int32 data = 2;
       */
      int getData();

      /**
       * optional int64 data_extra = 3;
       */
      boolean hasDataExtra();
      /**
       * optional int64 data_extra = 3;
       */
      long getDataExtra();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PauseMinigameData.DataBit}
     */
    public static final class DataBit extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PauseMinigameData.DataBit)
        DataBitOrBuilder {
      // Use DataBit.newBuilder() to construct.
      private DataBit(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private DataBit(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final DataBit defaultInstance;
      public static DataBit getDefaultInstance() {
        return defaultInstance;
      }

      public DataBit getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private DataBit(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                index_ = input.readUInt32();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                data_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                dataExtra_ = input.readInt64();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public DataBit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DataBit(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int INDEX_FIELD_NUMBER = 1;
      private int index_;
      /**
       * optional uint32 index = 1;
       */
      public boolean hasIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 index = 1;
       */
      public int getIndex() {
        return index_;
      }

      public static final int DATA_FIELD_NUMBER = 2;
      private int data_;
      /**
       * optional int32 data = 2;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 data = 2;
       */
      public int getData() {
        return data_;
      }

      public static final int DATA_EXTRA_FIELD_NUMBER = 3;
      private long dataExtra_;
      /**
       * optional int64 data_extra = 3;
       */
      public boolean hasDataExtra() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int64 data_extra = 3;
       */
      public long getDataExtra() {
        return dataExtra_;
      }

      private void initFields() {
        index_ = 0;
        data_ = 0;
        dataExtra_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt32(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, data_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt64(3, dataExtra_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(1, index_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, data_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt64Size(3, dataExtra_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_PauseMinigameData.DataBit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PauseMinigameData.DataBit)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          index_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          data_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          dataExtra_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.index_ = index_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.data_ = data_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.dataExtra_ = dataExtra_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance()) return this;
          if (other.hasIndex()) {
            setIndex(other.getIndex());
          }
          if (other.hasData()) {
            setData(other.getData());
          }
          if (other.hasDataExtra()) {
            setDataExtra(other.getDataExtra());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int index_ ;
        /**
         * optional uint32 index = 1;
         */
        public boolean hasIndex() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint32 index = 1;
         */
        public int getIndex() {
          return index_;
        }
        /**
         * optional uint32 index = 1;
         */
        public Builder setIndex(int value) {
          bitField0_ |= 0x00000001;
          index_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 index = 1;
         */
        public Builder clearIndex() {
          bitField0_ = (bitField0_ & ~0x00000001);
          index_ = 0;
          onChanged();
          return this;
        }

        private int data_ ;
        /**
         * optional int32 data = 2;
         */
        public boolean hasData() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 data = 2;
         */
        public int getData() {
          return data_;
        }
        /**
         * optional int32 data = 2;
         */
        public Builder setData(int value) {
          bitField0_ |= 0x00000002;
          data_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 data = 2;
         */
        public Builder clearData() {
          bitField0_ = (bitField0_ & ~0x00000002);
          data_ = 0;
          onChanged();
          return this;
        }

        private long dataExtra_ ;
        /**
         * optional int64 data_extra = 3;
         */
        public boolean hasDataExtra() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int64 data_extra = 3;
         */
        public long getDataExtra() {
          return dataExtra_;
        }
        /**
         * optional int64 data_extra = 3;
         */
        public Builder setDataExtra(long value) {
          bitField0_ |= 0x00000004;
          dataExtra_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int64 data_extra = 3;
         */
        public Builder clearDataExtra() {
          bitField0_ = (bitField0_ & ~0x00000004);
          dataExtra_ = 0L;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PauseMinigameData.DataBit)
      }

      static {
        defaultInstance = new DataBit(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PauseMinigameData.DataBit)
    }

    public static final int DATA_BITS_FIELD_NUMBER = 1;
    private java.util.List dataBits_;
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public java.util.List getDataBitsList() {
      return dataBits_;
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public java.util.List 
        getDataBitsOrBuilderList() {
      return dataBits_;
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public int getDataBitsCount() {
      return dataBits_.size();
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index) {
      return dataBits_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
        int index) {
      return dataBits_.get(index);
    }

    private void initFields() {
      dataBits_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < dataBits_.size(); i++) {
        output.writeMessage(1, dataBits_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < dataBits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, dataBits_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PauseMinigameData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PauseMinigameData)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDataBitsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dataBitsBuilder_ == null) {
          dataBits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          dataBitsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData(this);
        int from_bitField0_ = bitField0_;
        if (dataBitsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            dataBits_ = java.util.Collections.unmodifiableList(dataBits_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.dataBits_ = dataBits_;
        } else {
          result.dataBits_ = dataBitsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.getDefaultInstance()) return this;
        if (dataBitsBuilder_ == null) {
          if (!other.dataBits_.isEmpty()) {
            if (dataBits_.isEmpty()) {
              dataBits_ = other.dataBits_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureDataBitsIsMutable();
              dataBits_.addAll(other.dataBits_);
            }
            onChanged();
          }
        } else {
          if (!other.dataBits_.isEmpty()) {
            if (dataBitsBuilder_.isEmpty()) {
              dataBitsBuilder_.dispose();
              dataBitsBuilder_ = null;
              dataBits_ = other.dataBits_;
              bitField0_ = (bitField0_ & ~0x00000001);
              dataBitsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getDataBitsFieldBuilder() : null;
            } else {
              dataBitsBuilder_.addAllMessages(other.dataBits_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List dataBits_ =
        java.util.Collections.emptyList();
      private void ensureDataBitsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          dataBits_ = new java.util.ArrayList(dataBits_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder> dataBitsBuilder_;

      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List getDataBitsList() {
        if (dataBitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(dataBits_);
        } else {
          return dataBitsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public int getDataBitsCount() {
        if (dataBitsBuilder_ == null) {
          return dataBits_.size();
        } else {
          return dataBitsBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit getDataBits(int index) {
        if (dataBitsBuilder_ == null) {
          return dataBits_.get(index);
        } else {
          return dataBitsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder setDataBits(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.set(index, value);
          onChanged();
        } else {
          dataBitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder setDataBits(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.set(index, builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.add(value);
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit value) {
        if (dataBitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureDataBitsIsMutable();
          dataBits_.add(index, value);
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.add(builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addDataBits(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder builderForValue) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.add(index, builderForValue.build());
          onChanged();
        } else {
          dataBitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder addAllDataBits(
          java.lang.Iterable values) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, dataBits_);
          onChanged();
        } else {
          dataBitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder clearDataBits() {
        if (dataBitsBuilder_ == null) {
          dataBits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          dataBitsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public Builder removeDataBits(int index) {
        if (dataBitsBuilder_ == null) {
          ensureDataBitsIsMutable();
          dataBits_.remove(index);
          onChanged();
        } else {
          dataBitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder getDataBitsBuilder(
          int index) {
        return getDataBitsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder getDataBitsOrBuilder(
          int index) {
        if (dataBitsBuilder_ == null) {
          return dataBits_.get(index);  } else {
          return dataBitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List 
           getDataBitsOrBuilderList() {
        if (dataBitsBuilder_ != null) {
          return dataBitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(dataBits_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder addDataBitsBuilder() {
        return getDataBitsFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder addDataBitsBuilder(
          int index) {
        return getDataBitsFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_PauseMinigameData.DataBit data_bits = 1;
       */
      public java.util.List 
           getDataBitsBuilderList() {
        return getDataBitsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder> 
          getDataBitsFieldBuilder() {
        if (dataBitsBuilder_ == null) {
          dataBitsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBit.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PauseMinigameData.DataBitOrBuilder>(
                  dataBits_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          dataBits_ = null;
        }
        return dataBitsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PauseMinigameData)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PauseMinigameData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PauseMinigameData)
  }

  public interface CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_VersusScene_PlayerBehavior)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();

    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    boolean hasBehavior();
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior getBehavior();

    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    boolean hasPlayActivity();
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity getPlayActivity();
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder();

    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    boolean hasChatWheel();
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel getChatWheel();
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder();

    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    boolean hasPlaybackRate();
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate getPlaybackRate();
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_VersusScene_PlayerBehavior}
   */
  public static final class CDOTAUserMsg_VersusScene_PlayerBehavior extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_VersusScene_PlayerBehavior)
      CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder {
    // Use CDOTAUserMsg_VersusScene_PlayerBehavior.newBuilder() to construct.
    private CDOTAUserMsg_VersusScene_PlayerBehavior(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_VersusScene_PlayerBehavior(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_VersusScene_PlayerBehavior defaultInstance;
    public static CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_VersusScene_PlayerBehavior(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior value = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(2, rawValue);
              } else {
                bitField0_ |= 0x00000002;
                behavior_ = value;
              }
              break;
            }
            case 26: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = playActivity_.toBuilder();
              }
              playActivity_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playActivity_);
                playActivity_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            case 34: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = chatWheel_.toBuilder();
              }
              chatWheel_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(chatWheel_);
                chatWheel_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 42: {
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = playbackRate_.toBuilder();
              }
              playbackRate_ = input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(playbackRate_);
                playbackRate_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_VersusScene_PlayerBehavior parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_VersusScene_PlayerBehavior(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int BEHAVIOR_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior behavior_;
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    public boolean hasBehavior() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior getBehavior() {
      return behavior_;
    }

    public static final int PLAY_ACTIVITY_FIELD_NUMBER = 3;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity playActivity_;
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public boolean hasPlayActivity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity getPlayActivity() {
      return playActivity_;
    }
    /**
     * optional .VersusScene_PlayActivity play_activity = 3;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder() {
      return playActivity_;
    }

    public static final int CHAT_WHEEL_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel chatWheel_;
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public boolean hasChatWheel() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel getChatWheel() {
      return chatWheel_;
    }
    /**
     * optional .VersusScene_ChatWheel chat_wheel = 4;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder() {
      return chatWheel_;
    }

    public static final int PLAYBACK_RATE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate playbackRate_;
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public boolean hasPlaybackRate() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate getPlaybackRate() {
      return playbackRate_;
    }
    /**
     * optional .VersusScene_PlaybackRate playback_rate = 5;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder() {
      return playbackRate_;
    }

    private void initFields() {
      playerId_ = 0;
      behavior_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
      playActivity_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.getDefaultInstance();
      chatWheel_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.getDefaultInstance();
      playbackRate_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeEnum(2, behavior_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, playActivity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, chatWheel_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, playbackRate_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(2, behavior_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, playActivity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, chatWheel_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, playbackRate_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_VersusScene_PlayerBehavior}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_VersusScene_PlayerBehavior)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehaviorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayActivityFieldBuilder();
          getChatWheelFieldBuilder();
          getPlaybackRateFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        behavior_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (playActivityBuilder_ == null) {
          playActivity_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.getDefaultInstance();
        } else {
          playActivityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (chatWheelBuilder_ == null) {
          chatWheel_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.getDefaultInstance();
        } else {
          chatWheelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (playbackRateBuilder_ == null) {
          playbackRate_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
        } else {
          playbackRateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.behavior_ = behavior_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (playActivityBuilder_ == null) {
          result.playActivity_ = playActivity_;
        } else {
          result.playActivity_ = playActivityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (chatWheelBuilder_ == null) {
          result.chatWheel_ = chatWheel_;
        } else {
          result.chatWheel_ = chatWheelBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (playbackRateBuilder_ == null) {
          result.playbackRate_ = playbackRate_;
        } else {
          result.playbackRate_ = playbackRateBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasBehavior()) {
          setBehavior(other.getBehavior());
        }
        if (other.hasPlayActivity()) {
          mergePlayActivity(other.getPlayActivity());
        }
        if (other.hasChatWheel()) {
          mergeChatWheel(other.getChatWheel());
        }
        if (other.hasPlaybackRate()) {
          mergePlaybackRate(other.getPlaybackRate());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_VersusScene_PlayerBehavior) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior behavior_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public boolean hasBehavior() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior getBehavior() {
        return behavior_;
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public Builder setBehavior(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        behavior_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .EDOTAVersusScenePlayerBehavior behavior = 2 [default = VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY];
       */
      public Builder clearBehavior() {
        bitField0_ = (bitField0_ & ~0x00000002);
        behavior_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.EDOTAVersusScenePlayerBehavior.VS_PLAYER_BEHAVIOR_PLAY_ACTIVITY;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity playActivity_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder> playActivityBuilder_;
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public boolean hasPlayActivity() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity getPlayActivity() {
        if (playActivityBuilder_ == null) {
          return playActivity_;
        } else {
          return playActivityBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder setPlayActivity(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity value) {
        if (playActivityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playActivity_ = value;
          onChanged();
        } else {
          playActivityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder setPlayActivity(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder builderForValue) {
        if (playActivityBuilder_ == null) {
          playActivity_ = builderForValue.build();
          onChanged();
        } else {
          playActivityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder mergePlayActivity(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity value) {
        if (playActivityBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              playActivity_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.getDefaultInstance()) {
            playActivity_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.newBuilder(playActivity_).mergeFrom(value).buildPartial();
          } else {
            playActivity_ = value;
          }
          onChanged();
        } else {
          playActivityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public Builder clearPlayActivity() {
        if (playActivityBuilder_ == null) {
          playActivity_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.getDefaultInstance();
          onChanged();
        } else {
          playActivityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder getPlayActivityBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPlayActivityFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder getPlayActivityOrBuilder() {
        if (playActivityBuilder_ != null) {
          return playActivityBuilder_.getMessageOrBuilder();
        } else {
          return playActivity_;
        }
      }
      /**
       * optional .VersusScene_PlayActivity play_activity = 3;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder> 
          getPlayActivityFieldBuilder() {
        if (playActivityBuilder_ == null) {
          playActivityBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivity.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlayActivityOrBuilder>(
                  getPlayActivity(),
                  getParentForChildren(),
                  isClean());
          playActivity_ = null;
        }
        return playActivityBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel chatWheel_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder> chatWheelBuilder_;
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public boolean hasChatWheel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel getChatWheel() {
        if (chatWheelBuilder_ == null) {
          return chatWheel_;
        } else {
          return chatWheelBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder setChatWheel(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel value) {
        if (chatWheelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          chatWheel_ = value;
          onChanged();
        } else {
          chatWheelBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder setChatWheel(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder builderForValue) {
        if (chatWheelBuilder_ == null) {
          chatWheel_ = builderForValue.build();
          onChanged();
        } else {
          chatWheelBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder mergeChatWheel(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel value) {
        if (chatWheelBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              chatWheel_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.getDefaultInstance()) {
            chatWheel_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.newBuilder(chatWheel_).mergeFrom(value).buildPartial();
          } else {
            chatWheel_ = value;
          }
          onChanged();
        } else {
          chatWheelBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public Builder clearChatWheel() {
        if (chatWheelBuilder_ == null) {
          chatWheel_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.getDefaultInstance();
          onChanged();
        } else {
          chatWheelBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder getChatWheelBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getChatWheelFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder getChatWheelOrBuilder() {
        if (chatWheelBuilder_ != null) {
          return chatWheelBuilder_.getMessageOrBuilder();
        } else {
          return chatWheel_;
        }
      }
      /**
       * optional .VersusScene_ChatWheel chat_wheel = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder> 
          getChatWheelFieldBuilder() {
        if (chatWheelBuilder_ == null) {
          chatWheelBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheel.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_ChatWheelOrBuilder>(
                  getChatWheel(),
                  getParentForChildren(),
                  isClean());
          chatWheel_ = null;
        }
        return chatWheelBuilder_;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate playbackRate_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder> playbackRateBuilder_;
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public boolean hasPlaybackRate() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate getPlaybackRate() {
        if (playbackRateBuilder_ == null) {
          return playbackRate_;
        } else {
          return playbackRateBuilder_.getMessage();
        }
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder setPlaybackRate(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate value) {
        if (playbackRateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          playbackRate_ = value;
          onChanged();
        } else {
          playbackRateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder setPlaybackRate(
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder builderForValue) {
        if (playbackRateBuilder_ == null) {
          playbackRate_ = builderForValue.build();
          onChanged();
        } else {
          playbackRateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder mergePlaybackRate(skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate value) {
        if (playbackRateBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              playbackRate_ != skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.getDefaultInstance()) {
            playbackRate_ =
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.newBuilder(playbackRate_).mergeFrom(value).buildPartial();
          } else {
            playbackRate_ = value;
          }
          onChanged();
        } else {
          playbackRateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public Builder clearPlaybackRate() {
        if (playbackRateBuilder_ == null) {
          playbackRate_ = skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.getDefaultInstance();
          onChanged();
        } else {
          playbackRateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder getPlaybackRateBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getPlaybackRateFieldBuilder().getBuilder();
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder getPlaybackRateOrBuilder() {
        if (playbackRateBuilder_ != null) {
          return playbackRateBuilder_.getMessageOrBuilder();
        } else {
          return playbackRate_;
        }
      }
      /**
       * optional .VersusScene_PlaybackRate playback_rate = 5;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder> 
          getPlaybackRateFieldBuilder() {
        if (playbackRateBuilder_ == null) {
          playbackRateBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRate.Builder, skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.VersusScene_PlaybackRateOrBuilder>(
                  getPlaybackRate(),
                  getParentForChildren(),
                  isClean());
          playbackRate_ = null;
        }
        return playbackRateBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_VersusScene_PlayerBehavior)
    }

    static {
      defaultInstance = new CDOTAUserMsg_VersusScene_PlayerBehavior(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_VersusScene_PlayerBehavior)
  }

  public interface CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_QoP_ArcanaSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 arcana_level = 2;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 2;
     */
    int getArcanaLevel();

    /**
     * optional uint32 players_hit = 3;
     */
    boolean hasPlayersHit();
    /**
     * optional uint32 players_hit = 3;
     */
    int getPlayersHit();

    /**
     * optional uint32 players_killed = 4;
     */
    boolean hasPlayersKilled();
    /**
     * optional uint32 players_killed = 4;
     */
    int getPlayersKilled();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_QoP_ArcanaSummary}
   */
  public static final class CDOTAUserMsg_QoP_ArcanaSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_QoP_ArcanaSummary)
      CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder {
    // Use CDOTAUserMsg_QoP_ArcanaSummary.newBuilder() to construct.
    private CDOTAUserMsg_QoP_ArcanaSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_QoP_ArcanaSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_QoP_ArcanaSummary defaultInstance;
    public static CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_QoP_ArcanaSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playersHit_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              playersKilled_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_QoP_ArcanaSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_QoP_ArcanaSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 2;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 2;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 arcana_level = 2;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int PLAYERS_HIT_FIELD_NUMBER = 3;
    private int playersHit_;
    /**
     * optional uint32 players_hit = 3;
     */
    public boolean hasPlayersHit() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 players_hit = 3;
     */
    public int getPlayersHit() {
      return playersHit_;
    }

    public static final int PLAYERS_KILLED_FIELD_NUMBER = 4;
    private int playersKilled_;
    /**
     * optional uint32 players_killed = 4;
     */
    public boolean hasPlayersKilled() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 players_killed = 4;
     */
    public int getPlayersKilled() {
      return playersKilled_;
    }

    private void initFields() {
      ehandle_ = 0;
      arcanaLevel_ = 0;
      playersHit_ = 0;
      playersKilled_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, playersHit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, playersKilled_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, playersHit_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, playersKilled_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_QoP_ArcanaSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_QoP_ArcanaSummary)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playersHit_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        playersKilled_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playersHit_ = playersHit_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.playersKilled_ = playersKilled_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasPlayersHit()) {
          setPlayersHit(other.getPlayersHit());
        }
        if (other.hasPlayersKilled()) {
          setPlayersKilled(other.getPlayersKilled());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_QoP_ArcanaSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 2;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000002;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int playersHit_ ;
      /**
       * optional uint32 players_hit = 3;
       */
      public boolean hasPlayersHit() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public int getPlayersHit() {
        return playersHit_;
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public Builder setPlayersHit(int value) {
        bitField0_ |= 0x00000004;
        playersHit_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 players_hit = 3;
       */
      public Builder clearPlayersHit() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playersHit_ = 0;
        onChanged();
        return this;
      }

      private int playersKilled_ ;
      /**
       * optional uint32 players_killed = 4;
       */
      public boolean hasPlayersKilled() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public int getPlayersKilled() {
        return playersKilled_;
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public Builder setPlayersKilled(int value) {
        bitField0_ |= 0x00000008;
        playersKilled_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 players_killed = 4;
       */
      public Builder clearPlayersKilled() {
        bitField0_ = (bitField0_ & ~0x00000008);
        playersKilled_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_QoP_ArcanaSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_QoP_ArcanaSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_QoP_ArcanaSummary)
  }

  public interface CDOTAUserMsg_HotPotato_CreatedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HotPotato_Created)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional int32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional int32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional int32 player_id_2 = 2;
     */
    int getPlayerId2();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HotPotato_Created}
   */
  public static final class CDOTAUserMsg_HotPotato_Created extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HotPotato_Created)
      CDOTAUserMsg_HotPotato_CreatedOrBuilder {
    // Use CDOTAUserMsg_HotPotato_Created.newBuilder() to construct.
    private CDOTAUserMsg_HotPotato_Created(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HotPotato_Created(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HotPotato_Created defaultInstance;
    public static CDOTAUserMsg_HotPotato_Created getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HotPotato_Created getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HotPotato_Created(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HotPotato_Created parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HotPotato_Created(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional int32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional int32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId2_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId2_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HotPotato_Created}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HotPotato_Created)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_CreatedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Created) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional int32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional int32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HotPotato_Created)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HotPotato_Created(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HotPotato_Created)
  }

  public interface CDOTAUserMsg_HotPotato_ExplodedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_HotPotato_Exploded)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1;
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1;
     */
    int getPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_HotPotato_Exploded}
   */
  public static final class CDOTAUserMsg_HotPotato_Exploded extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_HotPotato_Exploded)
      CDOTAUserMsg_HotPotato_ExplodedOrBuilder {
    // Use CDOTAUserMsg_HotPotato_Exploded.newBuilder() to construct.
    private CDOTAUserMsg_HotPotato_Exploded(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_HotPotato_Exploded(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_HotPotato_Exploded defaultInstance;
    public static CDOTAUserMsg_HotPotato_Exploded getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_HotPotato_Exploded getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_HotPotato_Exploded(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_HotPotato_Exploded parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_HotPotato_Exploded(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1;
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1;
     */
    public int getPlayerId() {
      return playerId_;
    }

    private void initFields() {
      playerId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_HotPotato_Exploded}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_HotPotato_Exploded)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_ExplodedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_HotPotato_Exploded) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ ;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1;
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_HotPotato_Exploded)
    }

    static {
      defaultInstance = new CDOTAUserMsg_HotPotato_Exploded(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_HotPotato_Exploded)
  }

  public interface CDOTAUserMsg_WK_Arcana_ProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WK_Arcana_Progress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 arcana_level = 2;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 2;
     */
    int getArcanaLevel();

    /**
     * optional int32 hero_id = 3;
     */
    boolean hasHeroId();
    /**
     * optional int32 hero_id = 3;
     */
    int getHeroId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WK_Arcana_Progress}
   */
  public static final class CDOTAUserMsg_WK_Arcana_Progress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WK_Arcana_Progress)
      CDOTAUserMsg_WK_Arcana_ProgressOrBuilder {
    // Use CDOTAUserMsg_WK_Arcana_Progress.newBuilder() to construct.
    private CDOTAUserMsg_WK_Arcana_Progress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WK_Arcana_Progress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WK_Arcana_Progress defaultInstance;
    public static CDOTAUserMsg_WK_Arcana_Progress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WK_Arcana_Progress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WK_Arcana_Progress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              heroId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WK_Arcana_Progress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WK_Arcana_Progress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 2;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 2;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 arcana_level = 2;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int HERO_ID_FIELD_NUMBER = 3;
    private int heroId_;
    /**
     * optional int32 hero_id = 3;
     */
    public boolean hasHeroId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 hero_id = 3;
     */
    public int getHeroId() {
      return heroId_;
    }

    private void initFields() {
      ehandle_ = 0;
      arcanaLevel_ = 0;
      heroId_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, heroId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, heroId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WK_Arcana_Progress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WK_Arcana_Progress)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_ProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        heroId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.heroId_ = heroId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasHeroId()) {
          setHeroId(other.getHeroId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WK_Arcana_Progress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 2;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000002;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 2;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000002);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private int heroId_ ;
      /**
       * optional int32 hero_id = 3;
       */
      public boolean hasHeroId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 hero_id = 3;
       */
      public int getHeroId() {
        return heroId_;
      }
      /**
       * optional int32 hero_id = 3;
       */
      public Builder setHeroId(int value) {
        bitField0_ |= 0x00000004;
        heroId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 hero_id = 3;
       */
      public Builder clearHeroId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        heroId_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WK_Arcana_Progress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WK_Arcana_Progress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WK_Arcana_Progress)
  }

  public interface CDOTAUserMsg_GuildChallenge_ProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GuildChallenge_Progress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    java.util.List 
        getPlayerProgressList();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index);
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    int getPlayerProgressCount();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    java.util.List 
        getPlayerProgressOrBuilderList();
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
        int index);

    /**
     * optional uint32 guild_id = 2;
     */
    boolean hasGuildId();
    /**
     * optional uint32 guild_id = 2;
     */
    int getGuildId();

    /**
     * optional uint32 challenge_instance_id = 3;
     */
    boolean hasChallengeInstanceId();
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    int getChallengeInstanceId();

    /**
     * optional uint32 challenge_parameter = 4;
     */
    boolean hasChallengeParameter();
    /**
     * optional uint32 challenge_parameter = 4;
     */
    int getChallengeParameter();

    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    boolean hasChallengeType();
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType();

    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    boolean hasChallengeProgressAtStart();
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    int getChallengeProgressAtStart();

    /**
     * optional bool complete = 8;
     */
    boolean hasComplete();
    /**
     * optional bool complete = 8;
     */
    boolean getComplete();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress}
   */
  public static final class CDOTAUserMsg_GuildChallenge_Progress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GuildChallenge_Progress)
      CDOTAUserMsg_GuildChallenge_ProgressOrBuilder {
    // Use CDOTAUserMsg_GuildChallenge_Progress.newBuilder() to construct.
    private CDOTAUserMsg_GuildChallenge_Progress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_GuildChallenge_Progress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_GuildChallenge_Progress defaultInstance;
    public static CDOTAUserMsg_GuildChallenge_Progress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_GuildChallenge_Progress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_GuildChallenge_Progress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                playerProgress_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              playerProgress_.add(input.readMessage(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              guildId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              challengeInstanceId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000004;
              challengeParameter_ = input.readUInt32();
              break;
            }
            case 40: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(5, rawValue);
              } else {
                bitField0_ |= 0x00000008;
                challengeType_ = value;
              }
              break;
            }
            case 56: {
              bitField0_ |= 0x00000010;
              challengeProgressAtStart_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000020;
              complete_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          playerProgress_ = java.util.Collections.unmodifiableList(playerProgress_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_GuildChallenge_Progress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_GuildChallenge_Progress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    /**
     * Protobuf enum {@code CDOTAUserMsg_GuildChallenge_Progress.EChallengeType}
     */
    public enum EChallengeType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * k_EChallengeType_Invalid = 0;
       */
      k_EChallengeType_Invalid(0, 0),
      /**
       * k_EChallengeType_Cooperative = 1;
       */
      k_EChallengeType_Cooperative(1, 1),
      /**
       * k_EChallengeType_Contract = 2;
       */
      k_EChallengeType_Contract(2, 2),
      ;

      /**
       * k_EChallengeType_Invalid = 0;
       */
      public static final int k_EChallengeType_Invalid_VALUE = 0;
      /**
       * k_EChallengeType_Cooperative = 1;
       */
      public static final int k_EChallengeType_Cooperative_VALUE = 1;
      /**
       * k_EChallengeType_Contract = 2;
       */
      public static final int k_EChallengeType_Contract_VALUE = 2;


      public final int getNumber() { return value; }

      public static EChallengeType valueOf(int value) {
        switch (value) {
          case 0: return k_EChallengeType_Invalid;
          case 1: return k_EChallengeType_Cooperative;
          case 2: return k_EChallengeType_Contract;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static com.google.protobuf.Internal.EnumLiteMap
          internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public EChallengeType findValueByNumber(int number) {
                return EChallengeType.valueOf(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(index);
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDescriptor().getEnumTypes().get(0);
      }

      private static final EChallengeType[] VALUES = values();

      public static EChallengeType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int index;
      private final int value;

      private EChallengeType(int index, int value) {
        this.index = index;
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:CDOTAUserMsg_GuildChallenge_Progress.EChallengeType)
    }

    public interface PlayerProgressOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 player_id = 1;
       */
      boolean hasPlayerId();
      /**
       * optional int32 player_id = 1;
       */
      int getPlayerId();

      /**
       * optional uint32 progress = 6;
       */
      boolean hasProgress();
      /**
       * optional uint32 progress = 6;
       */
      int getProgress();
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress}
     */
    public static final class PlayerProgress extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
        PlayerProgressOrBuilder {
      // Use PlayerProgress.newBuilder() to construct.
      private PlayerProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PlayerProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PlayerProgress defaultInstance;
      public static PlayerProgress getDefaultInstance() {
        return defaultInstance;
      }

      public PlayerProgress getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PlayerProgress(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                playerId_ = input.readInt32();
                break;
              }
              case 48: {
                bitField0_ |= 0x00000002;
                progress_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public PlayerProgress parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new PlayerProgress(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int PLAYER_ID_FIELD_NUMBER = 1;
      private int playerId_;
      /**
       * optional int32 player_id = 1;
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1;
       */
      public int getPlayerId() {
        return playerId_;
      }

      public static final int PROGRESS_FIELD_NUMBER = 6;
      private int progress_;
      /**
       * optional uint32 progress = 6;
       */
      public boolean hasProgress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 progress = 6;
       */
      public int getProgress() {
        return progress_;
      }

      private void initFields() {
        playerId_ = 0;
        progress_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeUInt32(6, progress_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, playerId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(6, progress_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder.class);
        }

        // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          playerId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          progress_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getDefaultInstanceForType() {
          return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance();
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress build() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress buildPartial() {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.playerId_ = playerId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.progress_ = progress_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress) {
            return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress other) {
          if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance()) return this;
          if (other.hasPlayerId()) {
            setPlayerId(other.getPlayerId());
          }
          if (other.hasProgress()) {
            setProgress(other.getProgress());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int playerId_ ;
        /**
         * optional int32 player_id = 1;
         */
        public boolean hasPlayerId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 player_id = 1;
         */
        public int getPlayerId() {
          return playerId_;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder setPlayerId(int value) {
          bitField0_ |= 0x00000001;
          playerId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 player_id = 1;
         */
        public Builder clearPlayerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          playerId_ = 0;
          onChanged();
          return this;
        }

        private int progress_ ;
        /**
         * optional uint32 progress = 6;
         */
        public boolean hasProgress() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 progress = 6;
         */
        public int getProgress() {
          return progress_;
        }
        /**
         * optional uint32 progress = 6;
         */
        public Builder setProgress(int value) {
          bitField0_ |= 0x00000002;
          progress_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 progress = 6;
         */
        public Builder clearProgress() {
          bitField0_ = (bitField0_ & ~0x00000002);
          progress_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
      }

      static {
        defaultInstance = new PlayerProgress(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress)
    }

    private int bitField0_;
    public static final int PLAYER_PROGRESS_FIELD_NUMBER = 1;
    private java.util.List playerProgress_;
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public java.util.List getPlayerProgressList() {
      return playerProgress_;
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public java.util.List 
        getPlayerProgressOrBuilderList() {
      return playerProgress_;
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public int getPlayerProgressCount() {
      return playerProgress_.size();
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index) {
      return playerProgress_.get(index);
    }
    /**
     * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
        int index) {
      return playerProgress_.get(index);
    }

    public static final int GUILD_ID_FIELD_NUMBER = 2;
    private int guildId_;
    /**
     * optional uint32 guild_id = 2;
     */
    public boolean hasGuildId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 guild_id = 2;
     */
    public int getGuildId() {
      return guildId_;
    }

    public static final int CHALLENGE_INSTANCE_ID_FIELD_NUMBER = 3;
    private int challengeInstanceId_;
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    public boolean hasChallengeInstanceId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 challenge_instance_id = 3;
     */
    public int getChallengeInstanceId() {
      return challengeInstanceId_;
    }

    public static final int CHALLENGE_PARAMETER_FIELD_NUMBER = 4;
    private int challengeParameter_;
    /**
     * optional uint32 challenge_parameter = 4;
     */
    public boolean hasChallengeParameter() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 challenge_parameter = 4;
     */
    public int getChallengeParameter() {
      return challengeParameter_;
    }

    public static final int CHALLENGE_TYPE_FIELD_NUMBER = 5;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challengeType_;
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    public boolean hasChallengeType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType() {
      return challengeType_;
    }

    public static final int CHALLENGE_PROGRESS_AT_START_FIELD_NUMBER = 7;
    private int challengeProgressAtStart_;
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    public boolean hasChallengeProgressAtStart() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 challenge_progress_at_start = 7;
     */
    public int getChallengeProgressAtStart() {
      return challengeProgressAtStart_;
    }

    public static final int COMPLETE_FIELD_NUMBER = 8;
    private boolean complete_;
    /**
     * optional bool complete = 8;
     */
    public boolean hasComplete() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool complete = 8;
     */
    public boolean getComplete() {
      return complete_;
    }

    private void initFields() {
      playerProgress_ = java.util.Collections.emptyList();
      guildId_ = 0;
      challengeInstanceId_ = 0;
      challengeParameter_ = 0;
      challengeType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
      challengeProgressAtStart_ = 0;
      complete_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < playerProgress_.size(); i++) {
        output.writeMessage(1, playerProgress_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(2, guildId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(3, challengeInstanceId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(4, challengeParameter_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeEnum(5, challengeType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(7, challengeProgressAtStart_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(8, complete_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < playerProgress_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, playerProgress_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, guildId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, challengeInstanceId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, challengeParameter_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(5, challengeType_.getNumber());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, challengeProgressAtStart_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, complete_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_GuildChallenge_Progress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_GuildChallenge_Progress)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_ProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPlayerProgressFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (playerProgressBuilder_ == null) {
          playerProgress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          playerProgressBuilder_.clear();
        }
        guildId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        challengeInstanceId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        challengeParameter_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeProgressAtStart_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        complete_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (playerProgressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            playerProgress_ = java.util.Collections.unmodifiableList(playerProgress_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.playerProgress_ = playerProgress_;
        } else {
          result.playerProgress_ = playerProgressBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.guildId_ = guildId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.challengeInstanceId_ = challengeInstanceId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.challengeParameter_ = challengeParameter_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.challengeType_ = challengeType_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.challengeProgressAtStart_ = challengeProgressAtStart_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.complete_ = complete_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.getDefaultInstance()) return this;
        if (playerProgressBuilder_ == null) {
          if (!other.playerProgress_.isEmpty()) {
            if (playerProgress_.isEmpty()) {
              playerProgress_ = other.playerProgress_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePlayerProgressIsMutable();
              playerProgress_.addAll(other.playerProgress_);
            }
            onChanged();
          }
        } else {
          if (!other.playerProgress_.isEmpty()) {
            if (playerProgressBuilder_.isEmpty()) {
              playerProgressBuilder_.dispose();
              playerProgressBuilder_ = null;
              playerProgress_ = other.playerProgress_;
              bitField0_ = (bitField0_ & ~0x00000001);
              playerProgressBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPlayerProgressFieldBuilder() : null;
            } else {
              playerProgressBuilder_.addAllMessages(other.playerProgress_);
            }
          }
        }
        if (other.hasGuildId()) {
          setGuildId(other.getGuildId());
        }
        if (other.hasChallengeInstanceId()) {
          setChallengeInstanceId(other.getChallengeInstanceId());
        }
        if (other.hasChallengeParameter()) {
          setChallengeParameter(other.getChallengeParameter());
        }
        if (other.hasChallengeType()) {
          setChallengeType(other.getChallengeType());
        }
        if (other.hasChallengeProgressAtStart()) {
          setChallengeProgressAtStart(other.getChallengeProgressAtStart());
        }
        if (other.hasComplete()) {
          setComplete(other.getComplete());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List playerProgress_ =
        java.util.Collections.emptyList();
      private void ensurePlayerProgressIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          playerProgress_ = new java.util.ArrayList(playerProgress_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder> playerProgressBuilder_;

      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List getPlayerProgressList() {
        if (playerProgressBuilder_ == null) {
          return java.util.Collections.unmodifiableList(playerProgress_);
        } else {
          return playerProgressBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public int getPlayerProgressCount() {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.size();
        } else {
          return playerProgressBuilder_.getCount();
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress getPlayerProgress(int index) {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.get(index);
        } else {
          return playerProgressBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder setPlayerProgress(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.set(index, value);
          onChanged();
        } else {
          playerProgressBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder setPlayerProgress(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.set(index, builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.add(value);
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress value) {
        if (playerProgressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePlayerProgressIsMutable();
          playerProgress_.add(index, value);
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.add(builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addPlayerProgress(
          int index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder builderForValue) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.add(index, builderForValue.build());
          onChanged();
        } else {
          playerProgressBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder addAllPlayerProgress(
          java.lang.Iterable values) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, playerProgress_);
          onChanged();
        } else {
          playerProgressBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder clearPlayerProgress() {
        if (playerProgressBuilder_ == null) {
          playerProgress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          playerProgressBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public Builder removePlayerProgress(int index) {
        if (playerProgressBuilder_ == null) {
          ensurePlayerProgressIsMutable();
          playerProgress_.remove(index);
          onChanged();
        } else {
          playerProgressBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder getPlayerProgressBuilder(
          int index) {
        return getPlayerProgressFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder getPlayerProgressOrBuilder(
          int index) {
        if (playerProgressBuilder_ == null) {
          return playerProgress_.get(index);  } else {
          return playerProgressBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List 
           getPlayerProgressOrBuilderList() {
        if (playerProgressBuilder_ != null) {
          return playerProgressBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(playerProgress_);
        }
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder addPlayerProgressBuilder() {
        return getPlayerProgressFieldBuilder().addBuilder(
            skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder addPlayerProgressBuilder(
          int index) {
        return getPlayerProgressFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.getDefaultInstance());
      }
      /**
       * repeated .CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress player_progress = 1;
       */
      public java.util.List 
           getPlayerProgressBuilderList() {
        return getPlayerProgressFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder> 
          getPlayerProgressFieldBuilder() {
        if (playerProgressBuilder_ == null) {
          playerProgressBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgress.Builder, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.PlayerProgressOrBuilder>(
                  playerProgress_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          playerProgress_ = null;
        }
        return playerProgressBuilder_;
      }

      private int guildId_ ;
      /**
       * optional uint32 guild_id = 2;
       */
      public boolean hasGuildId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public int getGuildId() {
        return guildId_;
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public Builder setGuildId(int value) {
        bitField0_ |= 0x00000002;
        guildId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 guild_id = 2;
       */
      public Builder clearGuildId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        guildId_ = 0;
        onChanged();
        return this;
      }

      private int challengeInstanceId_ ;
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public boolean hasChallengeInstanceId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public int getChallengeInstanceId() {
        return challengeInstanceId_;
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public Builder setChallengeInstanceId(int value) {
        bitField0_ |= 0x00000004;
        challengeInstanceId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_instance_id = 3;
       */
      public Builder clearChallengeInstanceId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        challengeInstanceId_ = 0;
        onChanged();
        return this;
      }

      private int challengeParameter_ ;
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public boolean hasChallengeParameter() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public int getChallengeParameter() {
        return challengeParameter_;
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public Builder setChallengeParameter(int value) {
        bitField0_ |= 0x00000008;
        challengeParameter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_parameter = 4;
       */
      public Builder clearChallengeParameter() {
        bitField0_ = (bitField0_ & ~0x00000008);
        challengeParameter_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challengeType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public boolean hasChallengeType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType getChallengeType() {
        return challengeType_;
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public Builder setChallengeType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        challengeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .CDOTAUserMsg_GuildChallenge_Progress.EChallengeType challenge_type = 5 [default = k_EChallengeType_Invalid];
       */
      public Builder clearChallengeType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        challengeType_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_GuildChallenge_Progress.EChallengeType.k_EChallengeType_Invalid;
        onChanged();
        return this;
      }

      private int challengeProgressAtStart_ ;
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public boolean hasChallengeProgressAtStart() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public int getChallengeProgressAtStart() {
        return challengeProgressAtStart_;
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public Builder setChallengeProgressAtStart(int value) {
        bitField0_ |= 0x00000020;
        challengeProgressAtStart_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 challenge_progress_at_start = 7;
       */
      public Builder clearChallengeProgressAtStart() {
        bitField0_ = (bitField0_ & ~0x00000020);
        challengeProgressAtStart_ = 0;
        onChanged();
        return this;
      }

      private boolean complete_ ;
      /**
       * optional bool complete = 8;
       */
      public boolean hasComplete() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool complete = 8;
       */
      public boolean getComplete() {
        return complete_;
      }
      /**
       * optional bool complete = 8;
       */
      public Builder setComplete(boolean value) {
        bitField0_ |= 0x00000040;
        complete_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool complete = 8;
       */
      public Builder clearComplete() {
        bitField0_ = (bitField0_ & ~0x00000040);
        complete_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_GuildChallenge_Progress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_GuildChallenge_Progress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_GuildChallenge_Progress)
  }

  public interface CDOTAUserMsg_WRArcanaProgressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WRArcanaProgress)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional uint32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional uint32 arrows_landed = 3;
     */
    boolean hasArrowsLanded();
    /**
     * optional uint32 arrows_landed = 3;
     */
    int getArrowsLanded();

    /**
     * optional uint32 damage_dealt = 4;
     */
    boolean hasDamageDealt();
    /**
     * optional uint32 damage_dealt = 4;
     */
    int getDamageDealt();

    /**
     * optional uint32 target_hp = 5;
     */
    boolean hasTargetHp();
    /**
     * optional uint32 target_hp = 5;
     */
    int getTargetHp();

    /**
     * optional uint32 target_max_hp = 6;
     */
    boolean hasTargetMaxHp();
    /**
     * optional uint32 target_max_hp = 6;
     */
    int getTargetMaxHp();

    /**
     * optional uint32 arcana_level = 7;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 7;
     */
    int getArcanaLevel();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WRArcanaProgress}
   */
  public static final class CDOTAUserMsg_WRArcanaProgress extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WRArcanaProgress)
      CDOTAUserMsg_WRArcanaProgressOrBuilder {
    // Use CDOTAUserMsg_WRArcanaProgress.newBuilder() to construct.
    private CDOTAUserMsg_WRArcanaProgress(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WRArcanaProgress(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WRArcanaProgress defaultInstance;
    public static CDOTAUserMsg_WRArcanaProgress getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WRArcanaProgress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WRArcanaProgress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arrowsLanded_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageDealt_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetHp_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetMaxHp_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              arcanaLevel_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WRArcanaProgress parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WRArcanaProgress(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional uint32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int ARROWS_LANDED_FIELD_NUMBER = 3;
    private int arrowsLanded_;
    /**
     * optional uint32 arrows_landed = 3;
     */
    public boolean hasArrowsLanded() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arrows_landed = 3;
     */
    public int getArrowsLanded() {
      return arrowsLanded_;
    }

    public static final int DAMAGE_DEALT_FIELD_NUMBER = 4;
    private int damageDealt_;
    /**
     * optional uint32 damage_dealt = 4;
     */
    public boolean hasDamageDealt() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 damage_dealt = 4;
     */
    public int getDamageDealt() {
      return damageDealt_;
    }

    public static final int TARGET_HP_FIELD_NUMBER = 5;
    private int targetHp_;
    /**
     * optional uint32 target_hp = 5;
     */
    public boolean hasTargetHp() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 target_hp = 5;
     */
    public int getTargetHp() {
      return targetHp_;
    }

    public static final int TARGET_MAX_HP_FIELD_NUMBER = 6;
    private int targetMaxHp_;
    /**
     * optional uint32 target_max_hp = 6;
     */
    public boolean hasTargetMaxHp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 target_max_hp = 6;
     */
    public int getTargetMaxHp() {
      return targetMaxHp_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 7;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 7;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 arcana_level = 7;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    private void initFields() {
      ehandle_ = 0;
      targetEhandle_ = 0;
      arrowsLanded_ = 0;
      damageDealt_ = 0;
      targetHp_ = 0;
      targetMaxHp_ = 0;
      arcanaLevel_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, arcanaLevel_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, arcanaLevel_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WRArcanaProgress}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WRArcanaProgress)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arrowsLanded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageDealt_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetMaxHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arrowsLanded_ = arrowsLanded_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageDealt_ = damageDealt_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetHp_ = targetHp_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetMaxHp_ = targetMaxHp_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.arcanaLevel_ = arcanaLevel_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasArrowsLanded()) {
          setArrowsLanded(other.getArrowsLanded());
        }
        if (other.hasDamageDealt()) {
          setDamageDealt(other.getDamageDealt());
        }
        if (other.hasTargetHp()) {
          setTargetHp(other.getTargetHp());
        }
        if (other.hasTargetMaxHp()) {
          setTargetMaxHp(other.getTargetMaxHp());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaProgress) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional uint32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int arrowsLanded_ ;
      /**
       * optional uint32 arrows_landed = 3;
       */
      public boolean hasArrowsLanded() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public int getArrowsLanded() {
        return arrowsLanded_;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder setArrowsLanded(int value) {
        bitField0_ |= 0x00000004;
        arrowsLanded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder clearArrowsLanded() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arrowsLanded_ = 0;
        onChanged();
        return this;
      }

      private int damageDealt_ ;
      /**
       * optional uint32 damage_dealt = 4;
       */
      public boolean hasDamageDealt() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public int getDamageDealt() {
        return damageDealt_;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder setDamageDealt(int value) {
        bitField0_ |= 0x00000008;
        damageDealt_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder clearDamageDealt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageDealt_ = 0;
        onChanged();
        return this;
      }

      private int targetHp_ ;
      /**
       * optional uint32 target_hp = 5;
       */
      public boolean hasTargetHp() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public int getTargetHp() {
        return targetHp_;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder setTargetHp(int value) {
        bitField0_ |= 0x00000010;
        targetHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder clearTargetHp() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetHp_ = 0;
        onChanged();
        return this;
      }

      private int targetMaxHp_ ;
      /**
       * optional uint32 target_max_hp = 6;
       */
      public boolean hasTargetMaxHp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public int getTargetMaxHp() {
        return targetMaxHp_;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder setTargetMaxHp(int value) {
        bitField0_ |= 0x00000020;
        targetMaxHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder clearTargetMaxHp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetMaxHp_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 7;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000040;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000040);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WRArcanaProgress)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WRArcanaProgress(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WRArcanaProgress)
  }

  public interface CDOTAUserMsg_WRArcanaSummaryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_WRArcanaSummary)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional uint32 ehandle = 1;
     */
    boolean hasEhandle();
    /**
     * optional uint32 ehandle = 1;
     */
    int getEhandle();

    /**
     * optional uint32 target_ehandle = 2;
     */
    boolean hasTargetEhandle();
    /**
     * optional uint32 target_ehandle = 2;
     */
    int getTargetEhandle();

    /**
     * optional uint32 arrows_landed = 3;
     */
    boolean hasArrowsLanded();
    /**
     * optional uint32 arrows_landed = 3;
     */
    int getArrowsLanded();

    /**
     * optional uint32 damage_dealt = 4;
     */
    boolean hasDamageDealt();
    /**
     * optional uint32 damage_dealt = 4;
     */
    int getDamageDealt();

    /**
     * optional uint32 target_hp = 5;
     */
    boolean hasTargetHp();
    /**
     * optional uint32 target_hp = 5;
     */
    int getTargetHp();

    /**
     * optional uint32 target_max_hp = 6;
     */
    boolean hasTargetMaxHp();
    /**
     * optional uint32 target_max_hp = 6;
     */
    int getTargetMaxHp();

    /**
     * optional uint32 arcana_level = 7;
     */
    boolean hasArcanaLevel();
    /**
     * optional uint32 arcana_level = 7;
     */
    int getArcanaLevel();

    /**
     * optional bool success = 8;
     */
    boolean hasSuccess();
    /**
     * optional bool success = 8;
     */
    boolean getSuccess();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_WRArcanaSummary}
   */
  public static final class CDOTAUserMsg_WRArcanaSummary extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_WRArcanaSummary)
      CDOTAUserMsg_WRArcanaSummaryOrBuilder {
    // Use CDOTAUserMsg_WRArcanaSummary.newBuilder() to construct.
    private CDOTAUserMsg_WRArcanaSummary(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_WRArcanaSummary(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_WRArcanaSummary defaultInstance;
    public static CDOTAUserMsg_WRArcanaSummary getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_WRArcanaSummary getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_WRArcanaSummary(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ehandle_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetEhandle_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              arrowsLanded_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              damageDealt_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              targetHp_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              targetMaxHp_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              arcanaLevel_ = input.readUInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              success_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_WRArcanaSummary parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_WRArcanaSummary(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int EHANDLE_FIELD_NUMBER = 1;
    private int ehandle_;
    /**
     * optional uint32 ehandle = 1;
     */
    public boolean hasEhandle() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 ehandle = 1;
     */
    public int getEhandle() {
      return ehandle_;
    }

    public static final int TARGET_EHANDLE_FIELD_NUMBER = 2;
    private int targetEhandle_;
    /**
     * optional uint32 target_ehandle = 2;
     */
    public boolean hasTargetEhandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_ehandle = 2;
     */
    public int getTargetEhandle() {
      return targetEhandle_;
    }

    public static final int ARROWS_LANDED_FIELD_NUMBER = 3;
    private int arrowsLanded_;
    /**
     * optional uint32 arrows_landed = 3;
     */
    public boolean hasArrowsLanded() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 arrows_landed = 3;
     */
    public int getArrowsLanded() {
      return arrowsLanded_;
    }

    public static final int DAMAGE_DEALT_FIELD_NUMBER = 4;
    private int damageDealt_;
    /**
     * optional uint32 damage_dealt = 4;
     */
    public boolean hasDamageDealt() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 damage_dealt = 4;
     */
    public int getDamageDealt() {
      return damageDealt_;
    }

    public static final int TARGET_HP_FIELD_NUMBER = 5;
    private int targetHp_;
    /**
     * optional uint32 target_hp = 5;
     */
    public boolean hasTargetHp() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 target_hp = 5;
     */
    public int getTargetHp() {
      return targetHp_;
    }

    public static final int TARGET_MAX_HP_FIELD_NUMBER = 6;
    private int targetMaxHp_;
    /**
     * optional uint32 target_max_hp = 6;
     */
    public boolean hasTargetMaxHp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 target_max_hp = 6;
     */
    public int getTargetMaxHp() {
      return targetMaxHp_;
    }

    public static final int ARCANA_LEVEL_FIELD_NUMBER = 7;
    private int arcanaLevel_;
    /**
     * optional uint32 arcana_level = 7;
     */
    public boolean hasArcanaLevel() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 arcana_level = 7;
     */
    public int getArcanaLevel() {
      return arcanaLevel_;
    }

    public static final int SUCCESS_FIELD_NUMBER = 8;
    private boolean success_;
    /**
     * optional bool success = 8;
     */
    public boolean hasSuccess() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool success = 8;
     */
    public boolean getSuccess() {
      return success_;
    }

    private void initFields() {
      ehandle_ = 0;
      targetEhandle_ = 0;
      arrowsLanded_ = 0;
      damageDealt_ = 0;
      targetHp_ = 0;
      targetMaxHp_ = 0;
      arcanaLevel_ = 0;
      success_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(7, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, success_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, ehandle_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetEhandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, arrowsLanded_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, damageDealt_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, targetHp_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, targetMaxHp_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, arcanaLevel_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, success_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_WRArcanaSummary}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_WRArcanaSummary)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummaryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        ehandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetEhandle_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        arrowsLanded_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        damageDealt_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        targetHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        targetMaxHp_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        arcanaLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        success_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ehandle_ = ehandle_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetEhandle_ = targetEhandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.arrowsLanded_ = arrowsLanded_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.damageDealt_ = damageDealt_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.targetHp_ = targetHp_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.targetMaxHp_ = targetMaxHp_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.arcanaLevel_ = arcanaLevel_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.success_ = success_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary.getDefaultInstance()) return this;
        if (other.hasEhandle()) {
          setEhandle(other.getEhandle());
        }
        if (other.hasTargetEhandle()) {
          setTargetEhandle(other.getTargetEhandle());
        }
        if (other.hasArrowsLanded()) {
          setArrowsLanded(other.getArrowsLanded());
        }
        if (other.hasDamageDealt()) {
          setDamageDealt(other.getDamageDealt());
        }
        if (other.hasTargetHp()) {
          setTargetHp(other.getTargetHp());
        }
        if (other.hasTargetMaxHp()) {
          setTargetMaxHp(other.getTargetMaxHp());
        }
        if (other.hasArcanaLevel()) {
          setArcanaLevel(other.getArcanaLevel());
        }
        if (other.hasSuccess()) {
          setSuccess(other.getSuccess());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_WRArcanaSummary) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int ehandle_ ;
      /**
       * optional uint32 ehandle = 1;
       */
      public boolean hasEhandle() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public int getEhandle() {
        return ehandle_;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder setEhandle(int value) {
        bitField0_ |= 0x00000001;
        ehandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ehandle = 1;
       */
      public Builder clearEhandle() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ehandle_ = 0;
        onChanged();
        return this;
      }

      private int targetEhandle_ ;
      /**
       * optional uint32 target_ehandle = 2;
       */
      public boolean hasTargetEhandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public int getTargetEhandle() {
        return targetEhandle_;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder setTargetEhandle(int value) {
        bitField0_ |= 0x00000002;
        targetEhandle_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_ehandle = 2;
       */
      public Builder clearTargetEhandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEhandle_ = 0;
        onChanged();
        return this;
      }

      private int arrowsLanded_ ;
      /**
       * optional uint32 arrows_landed = 3;
       */
      public boolean hasArrowsLanded() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public int getArrowsLanded() {
        return arrowsLanded_;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder setArrowsLanded(int value) {
        bitField0_ |= 0x00000004;
        arrowsLanded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arrows_landed = 3;
       */
      public Builder clearArrowsLanded() {
        bitField0_ = (bitField0_ & ~0x00000004);
        arrowsLanded_ = 0;
        onChanged();
        return this;
      }

      private int damageDealt_ ;
      /**
       * optional uint32 damage_dealt = 4;
       */
      public boolean hasDamageDealt() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public int getDamageDealt() {
        return damageDealt_;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder setDamageDealt(int value) {
        bitField0_ |= 0x00000008;
        damageDealt_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_dealt = 4;
       */
      public Builder clearDamageDealt() {
        bitField0_ = (bitField0_ & ~0x00000008);
        damageDealt_ = 0;
        onChanged();
        return this;
      }

      private int targetHp_ ;
      /**
       * optional uint32 target_hp = 5;
       */
      public boolean hasTargetHp() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public int getTargetHp() {
        return targetHp_;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder setTargetHp(int value) {
        bitField0_ |= 0x00000010;
        targetHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hp = 5;
       */
      public Builder clearTargetHp() {
        bitField0_ = (bitField0_ & ~0x00000010);
        targetHp_ = 0;
        onChanged();
        return this;
      }

      private int targetMaxHp_ ;
      /**
       * optional uint32 target_max_hp = 6;
       */
      public boolean hasTargetMaxHp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public int getTargetMaxHp() {
        return targetMaxHp_;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder setTargetMaxHp(int value) {
        bitField0_ |= 0x00000020;
        targetMaxHp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_max_hp = 6;
       */
      public Builder clearTargetMaxHp() {
        bitField0_ = (bitField0_ & ~0x00000020);
        targetMaxHp_ = 0;
        onChanged();
        return this;
      }

      private int arcanaLevel_ ;
      /**
       * optional uint32 arcana_level = 7;
       */
      public boolean hasArcanaLevel() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public int getArcanaLevel() {
        return arcanaLevel_;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder setArcanaLevel(int value) {
        bitField0_ |= 0x00000040;
        arcanaLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 arcana_level = 7;
       */
      public Builder clearArcanaLevel() {
        bitField0_ = (bitField0_ & ~0x00000040);
        arcanaLevel_ = 0;
        onChanged();
        return this;
      }

      private boolean success_ ;
      /**
       * optional bool success = 8;
       */
      public boolean hasSuccess() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool success = 8;
       */
      public boolean getSuccess() {
        return success_;
      }
      /**
       * optional bool success = 8;
       */
      public Builder setSuccess(boolean value) {
        bitField0_ |= 0x00000080;
        success_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool success = 8;
       */
      public Builder clearSuccess() {
        bitField0_ = (bitField0_ & ~0x00000080);
        success_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_WRArcanaSummary)
    }

    static {
      defaultInstance = new CDOTAUserMsg_WRArcanaSummary(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_WRArcanaSummary)
  }

  public interface CDOTAUserMsg_EmptyItemSlotAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_EmptyItemSlotAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 slot_index = 3;
     */
    boolean hasSlotIndex();
    /**
     * optional int32 slot_index = 3;
     */
    int getSlotIndex();

    /**
     * optional int32 cooldown_seconds = 4;
     */
    boolean hasCooldownSeconds();
    /**
     * optional int32 cooldown_seconds = 4;
     */
    int getCooldownSeconds();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_EmptyItemSlotAlert}
   */
  public static final class CDOTAUserMsg_EmptyItemSlotAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_EmptyItemSlotAlert)
      CDOTAUserMsg_EmptyItemSlotAlertOrBuilder {
    // Use CDOTAUserMsg_EmptyItemSlotAlert.newBuilder() to construct.
    private CDOTAUserMsg_EmptyItemSlotAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_EmptyItemSlotAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_EmptyItemSlotAlert defaultInstance;
    public static CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_EmptyItemSlotAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              slotIndex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              cooldownSeconds_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_EmptyItemSlotAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_EmptyItemSlotAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int SLOT_INDEX_FIELD_NUMBER = 3;
    private int slotIndex_;
    /**
     * optional int32 slot_index = 3;
     */
    public boolean hasSlotIndex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 slot_index = 3;
     */
    public int getSlotIndex() {
      return slotIndex_;
    }

    public static final int COOLDOWN_SECONDS_FIELD_NUMBER = 4;
    private int cooldownSeconds_;
    /**
     * optional int32 cooldown_seconds = 4;
     */
    public boolean hasCooldownSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 cooldown_seconds = 4;
     */
    public int getCooldownSeconds() {
      return cooldownSeconds_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      slotIndex_ = 0;
      cooldownSeconds_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, slotIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, cooldownSeconds_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, slotIndex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, cooldownSeconds_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_EmptyItemSlotAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_EmptyItemSlotAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        slotIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        cooldownSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.slotIndex_ = slotIndex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.cooldownSeconds_ = cooldownSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasSlotIndex()) {
          setSlotIndex(other.getSlotIndex());
        }
        if (other.hasCooldownSeconds()) {
          setCooldownSeconds(other.getCooldownSeconds());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_EmptyItemSlotAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int slotIndex_ ;
      /**
       * optional int32 slot_index = 3;
       */
      public boolean hasSlotIndex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 slot_index = 3;
       */
      public int getSlotIndex() {
        return slotIndex_;
      }
      /**
       * optional int32 slot_index = 3;
       */
      public Builder setSlotIndex(int value) {
        bitField0_ |= 0x00000004;
        slotIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 slot_index = 3;
       */
      public Builder clearSlotIndex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        slotIndex_ = 0;
        onChanged();
        return this;
      }

      private int cooldownSeconds_ ;
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public boolean hasCooldownSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public int getCooldownSeconds() {
        return cooldownSeconds_;
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public Builder setCooldownSeconds(int value) {
        bitField0_ |= 0x00000008;
        cooldownSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cooldown_seconds = 4;
       */
      public Builder clearCooldownSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        cooldownSeconds_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_EmptyItemSlotAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_EmptyItemSlotAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_EmptyItemSlotAlert)
  }

  public interface CDOTAUserMsg_AghsStatusAlertOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_AghsStatusAlert)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional int32 target_player_id = 2;
     */
    boolean hasTargetPlayerId();
    /**
     * optional int32 target_player_id = 2;
     */
    int getTargetPlayerId();

    /**
     * optional int32 target_entindex = 3;
     */
    boolean hasTargetEntindex();
    /**
     * optional int32 target_entindex = 3;
     */
    int getTargetEntindex();

    /**
     * optional uint32 alert_type = 4;
     */
    boolean hasAlertType();
    /**
     * optional uint32 alert_type = 4;
     */
    int getAlertType();

    /**
     * optional bool has_scepter = 5;
     */
    boolean hasHasScepter();
    /**
     * optional bool has_scepter = 5;
     */
    boolean getHasScepter();

    /**
     * optional bool has_shard = 6;
     */
    boolean hasHasShard();
    /**
     * optional bool has_shard = 6;
     */
    boolean getHasShard();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_AghsStatusAlert}
   */
  public static final class CDOTAUserMsg_AghsStatusAlert extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_AghsStatusAlert)
      CDOTAUserMsg_AghsStatusAlertOrBuilder {
    // Use CDOTAUserMsg_AghsStatusAlert.newBuilder() to construct.
    private CDOTAUserMsg_AghsStatusAlert(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_AghsStatusAlert(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_AghsStatusAlert defaultInstance;
    public static CDOTAUserMsg_AghsStatusAlert getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_AghsStatusAlert getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_AghsStatusAlert(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetPlayerId_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetEntindex_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              alertType_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              hasScepter_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              hasShard_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_AghsStatusAlert parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_AghsStatusAlert(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int TARGET_PLAYER_ID_FIELD_NUMBER = 2;
    private int targetPlayerId_;
    /**
     * optional int32 target_player_id = 2;
     */
    public boolean hasTargetPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 target_player_id = 2;
     */
    public int getTargetPlayerId() {
      return targetPlayerId_;
    }

    public static final int TARGET_ENTINDEX_FIELD_NUMBER = 3;
    private int targetEntindex_;
    /**
     * optional int32 target_entindex = 3;
     */
    public boolean hasTargetEntindex() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 target_entindex = 3;
     */
    public int getTargetEntindex() {
      return targetEntindex_;
    }

    public static final int ALERT_TYPE_FIELD_NUMBER = 4;
    private int alertType_;
    /**
     * optional uint32 alert_type = 4;
     */
    public boolean hasAlertType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 alert_type = 4;
     */
    public int getAlertType() {
      return alertType_;
    }

    public static final int HAS_SCEPTER_FIELD_NUMBER = 5;
    private boolean hasScepter_;
    /**
     * optional bool has_scepter = 5;
     */
    public boolean hasHasScepter() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool has_scepter = 5;
     */
    public boolean getHasScepter() {
      return hasScepter_;
    }

    public static final int HAS_SHARD_FIELD_NUMBER = 6;
    private boolean hasShard_;
    /**
     * optional bool has_shard = 6;
     */
    public boolean hasHasShard() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional bool has_shard = 6;
     */
    public boolean getHasShard() {
      return hasShard_;
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      targetPlayerId_ = 0;
      targetEntindex_ = 0;
      alertType_ = 0;
      hasScepter_ = false;
      hasShard_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, targetEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, alertType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, hasScepter_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, hasShard_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, targetPlayerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, targetEntindex_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, alertType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, hasScepter_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(6, hasShard_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_AghsStatusAlert}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_AghsStatusAlert)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlertOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetEntindex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        alertType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        hasScepter_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        hasShard_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetPlayerId_ = targetPlayerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetEntindex_ = targetEntindex_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.alertType_ = alertType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hasScepter_ = hasScepter_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.hasShard_ = hasShard_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasTargetPlayerId()) {
          setTargetPlayerId(other.getTargetPlayerId());
        }
        if (other.hasTargetEntindex()) {
          setTargetEntindex(other.getTargetEntindex());
        }
        if (other.hasAlertType()) {
          setAlertType(other.getAlertType());
        }
        if (other.hasHasScepter()) {
          setHasScepter(other.getHasScepter());
        }
        if (other.hasHasShard()) {
          setHasShard(other.getHasShard());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_AghsStatusAlert) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetPlayerId_ ;
      /**
       * optional int32 target_player_id = 2;
       */
      public boolean hasTargetPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public int getTargetPlayerId() {
        return targetPlayerId_;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder setTargetPlayerId(int value) {
        bitField0_ |= 0x00000002;
        targetPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_player_id = 2;
       */
      public Builder clearTargetPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetPlayerId_ = 0;
        onChanged();
        return this;
      }

      private int targetEntindex_ ;
      /**
       * optional int32 target_entindex = 3;
       */
      public boolean hasTargetEntindex() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 target_entindex = 3;
       */
      public int getTargetEntindex() {
        return targetEntindex_;
      }
      /**
       * optional int32 target_entindex = 3;
       */
      public Builder setTargetEntindex(int value) {
        bitField0_ |= 0x00000004;
        targetEntindex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 target_entindex = 3;
       */
      public Builder clearTargetEntindex() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetEntindex_ = 0;
        onChanged();
        return this;
      }

      private int alertType_ ;
      /**
       * optional uint32 alert_type = 4;
       */
      public boolean hasAlertType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public int getAlertType() {
        return alertType_;
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public Builder setAlertType(int value) {
        bitField0_ |= 0x00000008;
        alertType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 alert_type = 4;
       */
      public Builder clearAlertType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        alertType_ = 0;
        onChanged();
        return this;
      }

      private boolean hasScepter_ ;
      /**
       * optional bool has_scepter = 5;
       */
      public boolean hasHasScepter() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool has_scepter = 5;
       */
      public boolean getHasScepter() {
        return hasScepter_;
      }
      /**
       * optional bool has_scepter = 5;
       */
      public Builder setHasScepter(boolean value) {
        bitField0_ |= 0x00000010;
        hasScepter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool has_scepter = 5;
       */
      public Builder clearHasScepter() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hasScepter_ = false;
        onChanged();
        return this;
      }

      private boolean hasShard_ ;
      /**
       * optional bool has_shard = 6;
       */
      public boolean hasHasShard() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool has_shard = 6;
       */
      public boolean getHasShard() {
        return hasShard_;
      }
      /**
       * optional bool has_shard = 6;
       */
      public Builder setHasShard(boolean value) {
        bitField0_ |= 0x00000020;
        hasShard_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool has_shard = 6;
       */
      public Builder clearHasShard() {
        bitField0_ = (bitField0_ & ~0x00000020);
        hasShard_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_AghsStatusAlert)
    }

    static {
      defaultInstance = new CDOTAUserMsg_AghsStatusAlert(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_AghsStatusAlert)
  }

  public interface CDOTAUserMsg_MutedPlayersOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MutedPlayers)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    java.util.List getTextMutedPlayerIdsList();
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    int getTextMutedPlayerIdsCount();
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    int getTextMutedPlayerIds(int index);

    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    java.util.List getVoiceMutedPlayerIdsList();
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    int getVoiceMutedPlayerIdsCount();
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    int getVoiceMutedPlayerIds(int index);
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MutedPlayers}
   */
  public static final class CDOTAUserMsg_MutedPlayers extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MutedPlayers)
      CDOTAUserMsg_MutedPlayersOrBuilder {
    // Use CDOTAUserMsg_MutedPlayers.newBuilder() to construct.
    private CDOTAUserMsg_MutedPlayers(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MutedPlayers(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MutedPlayers defaultInstance;
    public static CDOTAUserMsg_MutedPlayers getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MutedPlayers getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MutedPlayers(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                textMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              textMutedPlayerIds_.add(input.readInt32());
              break;
            }
            case 10: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001) && input.getBytesUntilLimit() > 0) {
                textMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                textMutedPlayerIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                voiceMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              voiceMutedPlayerIds_.add(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
                voiceMutedPlayerIds_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              while (input.getBytesUntilLimit() > 0) {
                voiceMutedPlayerIds_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = java.util.Collections.unmodifiableList(textMutedPlayerIds_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MutedPlayers parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MutedPlayers(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int TEXT_MUTED_PLAYER_IDS_FIELD_NUMBER = 1;
    private java.util.List textMutedPlayerIds_;
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public java.util.List
        getTextMutedPlayerIdsList() {
      return textMutedPlayerIds_;
    }
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public int getTextMutedPlayerIdsCount() {
      return textMutedPlayerIds_.size();
    }
    /**
     * repeated int32 text_muted_player_ids = 1;
     */
    public int getTextMutedPlayerIds(int index) {
      return textMutedPlayerIds_.get(index);
    }

    public static final int VOICE_MUTED_PLAYER_IDS_FIELD_NUMBER = 2;
    private java.util.List voiceMutedPlayerIds_;
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public java.util.List
        getVoiceMutedPlayerIdsList() {
      return voiceMutedPlayerIds_;
    }
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public int getVoiceMutedPlayerIdsCount() {
      return voiceMutedPlayerIds_.size();
    }
    /**
     * repeated int32 voice_muted_player_ids = 2;
     */
    public int getVoiceMutedPlayerIds(int index) {
      return voiceMutedPlayerIds_.get(index);
    }

    private void initFields() {
      textMutedPlayerIds_ = java.util.Collections.emptyList();
      voiceMutedPlayerIds_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < textMutedPlayerIds_.size(); i++) {
        output.writeInt32(1, textMutedPlayerIds_.get(i));
      }
      for (int i = 0; i < voiceMutedPlayerIds_.size(); i++) {
        output.writeInt32(2, voiceMutedPlayerIds_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < textMutedPlayerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(textMutedPlayerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getTextMutedPlayerIdsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < voiceMutedPlayerIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(voiceMutedPlayerIds_.get(i));
        }
        size += dataSize;
        size += 1 * getVoiceMutedPlayerIdsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MutedPlayers}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MutedPlayers)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayersOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        textMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        voiceMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = java.util.Collections.unmodifiableList(textMutedPlayerIds_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.textMutedPlayerIds_ = textMutedPlayerIds_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.voiceMutedPlayerIds_ = voiceMutedPlayerIds_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers.getDefaultInstance()) return this;
        if (!other.textMutedPlayerIds_.isEmpty()) {
          if (textMutedPlayerIds_.isEmpty()) {
            textMutedPlayerIds_ = other.textMutedPlayerIds_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTextMutedPlayerIdsIsMutable();
            textMutedPlayerIds_.addAll(other.textMutedPlayerIds_);
          }
          onChanged();
        }
        if (!other.voiceMutedPlayerIds_.isEmpty()) {
          if (voiceMutedPlayerIds_.isEmpty()) {
            voiceMutedPlayerIds_ = other.voiceMutedPlayerIds_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureVoiceMutedPlayerIdsIsMutable();
            voiceMutedPlayerIds_.addAll(other.voiceMutedPlayerIds_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MutedPlayers) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List textMutedPlayerIds_ = java.util.Collections.emptyList();
      private void ensureTextMutedPlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          textMutedPlayerIds_ = new java.util.ArrayList(textMutedPlayerIds_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public java.util.List
          getTextMutedPlayerIdsList() {
        return java.util.Collections.unmodifiableList(textMutedPlayerIds_);
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public int getTextMutedPlayerIdsCount() {
        return textMutedPlayerIds_.size();
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public int getTextMutedPlayerIds(int index) {
        return textMutedPlayerIds_.get(index);
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder setTextMutedPlayerIds(
          int index, int value) {
        ensureTextMutedPlayerIdsIsMutable();
        textMutedPlayerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder addTextMutedPlayerIds(int value) {
        ensureTextMutedPlayerIdsIsMutable();
        textMutedPlayerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder addAllTextMutedPlayerIds(
          java.lang.Iterable values) {
        ensureTextMutedPlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, textMutedPlayerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 text_muted_player_ids = 1;
       */
      public Builder clearTextMutedPlayerIds() {
        textMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private java.util.List voiceMutedPlayerIds_ = java.util.Collections.emptyList();
      private void ensureVoiceMutedPlayerIdsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          voiceMutedPlayerIds_ = new java.util.ArrayList(voiceMutedPlayerIds_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public java.util.List
          getVoiceMutedPlayerIdsList() {
        return java.util.Collections.unmodifiableList(voiceMutedPlayerIds_);
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public int getVoiceMutedPlayerIdsCount() {
        return voiceMutedPlayerIds_.size();
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public int getVoiceMutedPlayerIds(int index) {
        return voiceMutedPlayerIds_.get(index);
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder setVoiceMutedPlayerIds(
          int index, int value) {
        ensureVoiceMutedPlayerIdsIsMutable();
        voiceMutedPlayerIds_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder addVoiceMutedPlayerIds(int value) {
        ensureVoiceMutedPlayerIdsIsMutable();
        voiceMutedPlayerIds_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder addAllVoiceMutedPlayerIds(
          java.lang.Iterable values) {
        ensureVoiceMutedPlayerIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, voiceMutedPlayerIds_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 voice_muted_player_ids = 2;
       */
      public Builder clearVoiceMutedPlayerIds() {
        voiceMutedPlayerIds_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MutedPlayers)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MutedPlayers(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MutedPlayers)
  }

  public interface CDOTAUserMsg_ContextualTipOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ContextualTip)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 tip_id = 1;
     */
    boolean hasTipId();
    /**
     * optional int32 tip_id = 1;
     */
    int getTipId();

    /**
     * repeated string referenced_abilities = 2;
     */
    com.google.protobuf.ProtocolStringList
        getReferencedAbilitiesList();
    /**
     * repeated string referenced_abilities = 2;
     */
    int getReferencedAbilitiesCount();
    /**
     * repeated string referenced_abilities = 2;
     */
    java.lang.String getReferencedAbilities(int index);
    /**
     * repeated string referenced_abilities = 2;
     */
    com.google.protobuf.ByteString
        getReferencedAbilitiesBytes(int index);

    /**
     * repeated string referenced_units = 3;
     */
    com.google.protobuf.ProtocolStringList
        getReferencedUnitsList();
    /**
     * repeated string referenced_units = 3;
     */
    int getReferencedUnitsCount();
    /**
     * repeated string referenced_units = 3;
     */
    java.lang.String getReferencedUnits(int index);
    /**
     * repeated string referenced_units = 3;
     */
    com.google.protobuf.ByteString
        getReferencedUnitsBytes(int index);

    /**
     * repeated string panorama_classes = 4;
     */
    com.google.protobuf.ProtocolStringList
        getPanoramaClassesList();
    /**
     * repeated string panorama_classes = 4;
     */
    int getPanoramaClassesCount();
    /**
     * repeated string panorama_classes = 4;
     */
    java.lang.String getPanoramaClasses(int index);
    /**
     * repeated string panorama_classes = 4;
     */
    com.google.protobuf.ByteString
        getPanoramaClassesBytes(int index);

    /**
     * optional bool force_annotation = 5;
     */
    boolean hasForceAnnotation();
    /**
     * optional bool force_annotation = 5;
     */
    boolean getForceAnnotation();

    /**
     * optional int32 variant = 6;
     */
    boolean hasVariant();
    /**
     * optional int32 variant = 6;
     */
    int getVariant();

    /**
     * optional int32 int_param = 7;
     */
    boolean hasIntParam();
    /**
     * optional int32 int_param = 7;
     */
    int getIntParam();

    /**
     * optional int32 int_param2 = 8;
     */
    boolean hasIntParam2();
    /**
     * optional int32 int_param2 = 8;
     */
    int getIntParam2();

    /**
     * optional float float_param = 9;
     */
    boolean hasFloatParam();
    /**
     * optional float float_param = 9;
     */
    float getFloatParam();

    /**
     * optional float float_param2 = 10;
     */
    boolean hasFloatParam2();
    /**
     * optional float float_param2 = 10;
     */
    float getFloatParam2();

    /**
     * optional string string_param = 11;
     */
    boolean hasStringParam();
    /**
     * optional string string_param = 11;
     */
    java.lang.String getStringParam();
    /**
     * optional string string_param = 11;
     */
    com.google.protobuf.ByteString
        getStringParamBytes();

    /**
     * optional string string_param2 = 12;
     */
    boolean hasStringParam2();
    /**
     * optional string string_param2 = 12;
     */
    java.lang.String getStringParam2();
    /**
     * optional string string_param2 = 12;
     */
    com.google.protobuf.ByteString
        getStringParam2Bytes();

    /**
     * optional string tip_text_override = 13;
     */
    boolean hasTipTextOverride();
    /**
     * optional string tip_text_override = 13;
     */
    java.lang.String getTipTextOverride();
    /**
     * optional string tip_text_override = 13;
     */
    com.google.protobuf.ByteString
        getTipTextOverrideBytes();

    /**
     * optional string tip_annotation_override = 14;
     */
    boolean hasTipAnnotationOverride();
    /**
     * optional string tip_annotation_override = 14;
     */
    java.lang.String getTipAnnotationOverride();
    /**
     * optional string tip_annotation_override = 14;
     */
    com.google.protobuf.ByteString
        getTipAnnotationOverrideBytes();

    /**
     * optional string panorama_snippet = 15;
     */
    boolean hasPanoramaSnippet();
    /**
     * optional string panorama_snippet = 15;
     */
    java.lang.String getPanoramaSnippet();
    /**
     * optional string panorama_snippet = 15;
     */
    com.google.protobuf.ByteString
        getPanoramaSnippetBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ContextualTip}
   */
  public static final class CDOTAUserMsg_ContextualTip extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ContextualTip)
      CDOTAUserMsg_ContextualTipOrBuilder {
    // Use CDOTAUserMsg_ContextualTip.newBuilder() to construct.
    private CDOTAUserMsg_ContextualTip(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ContextualTip(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ContextualTip defaultInstance;
    public static CDOTAUserMsg_ContextualTip getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ContextualTip getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ContextualTip(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              tipId_ = input.readInt32();
              break;
            }
            case 18: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                referencedAbilities_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000002;
              }
              referencedAbilities_.add(bs);
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                referencedUnits_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000004;
              }
              referencedUnits_.add(bs);
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                panoramaClasses_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000008;
              }
              panoramaClasses_.add(bs);
              break;
            }
            case 40: {
              bitField0_ |= 0x00000002;
              forceAnnotation_ = input.readBool();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000004;
              variant_ = input.readInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000008;
              intParam_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000010;
              intParam2_ = input.readInt32();
              break;
            }
            case 77: {
              bitField0_ |= 0x00000020;
              floatParam_ = input.readFloat();
              break;
            }
            case 85: {
              bitField0_ |= 0x00000040;
              floatParam2_ = input.readFloat();
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000080;
              stringParam_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000100;
              stringParam2_ = bs;
              break;
            }
            case 106: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              tipTextOverride_ = bs;
              break;
            }
            case 114: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              tipAnnotationOverride_ = bs;
              break;
            }
            case 122: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              panoramaSnippet_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = referencedAbilities_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = referencedUnits_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = panoramaClasses_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ContextualTip parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ContextualTip(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int TIP_ID_FIELD_NUMBER = 1;
    private int tipId_;
    /**
     * optional int32 tip_id = 1;
     */
    public boolean hasTipId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 tip_id = 1;
     */
    public int getTipId() {
      return tipId_;
    }

    public static final int REFERENCED_ABILITIES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList referencedAbilities_;
    /**
     * repeated string referenced_abilities = 2;
     */
    public com.google.protobuf.ProtocolStringList
        getReferencedAbilitiesList() {
      return referencedAbilities_;
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public int getReferencedAbilitiesCount() {
      return referencedAbilities_.size();
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public java.lang.String getReferencedAbilities(int index) {
      return referencedAbilities_.get(index);
    }
    /**
     * repeated string referenced_abilities = 2;
     */
    public com.google.protobuf.ByteString
        getReferencedAbilitiesBytes(int index) {
      return referencedAbilities_.getByteString(index);
    }

    public static final int REFERENCED_UNITS_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList referencedUnits_;
    /**
     * repeated string referenced_units = 3;
     */
    public com.google.protobuf.ProtocolStringList
        getReferencedUnitsList() {
      return referencedUnits_;
    }
    /**
     * repeated string referenced_units = 3;
     */
    public int getReferencedUnitsCount() {
      return referencedUnits_.size();
    }
    /**
     * repeated string referenced_units = 3;
     */
    public java.lang.String getReferencedUnits(int index) {
      return referencedUnits_.get(index);
    }
    /**
     * repeated string referenced_units = 3;
     */
    public com.google.protobuf.ByteString
        getReferencedUnitsBytes(int index) {
      return referencedUnits_.getByteString(index);
    }

    public static final int PANORAMA_CLASSES_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList panoramaClasses_;
    /**
     * repeated string panorama_classes = 4;
     */
    public com.google.protobuf.ProtocolStringList
        getPanoramaClassesList() {
      return panoramaClasses_;
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public int getPanoramaClassesCount() {
      return panoramaClasses_.size();
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public java.lang.String getPanoramaClasses(int index) {
      return panoramaClasses_.get(index);
    }
    /**
     * repeated string panorama_classes = 4;
     */
    public com.google.protobuf.ByteString
        getPanoramaClassesBytes(int index) {
      return panoramaClasses_.getByteString(index);
    }

    public static final int FORCE_ANNOTATION_FIELD_NUMBER = 5;
    private boolean forceAnnotation_;
    /**
     * optional bool force_annotation = 5;
     */
    public boolean hasForceAnnotation() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool force_annotation = 5;
     */
    public boolean getForceAnnotation() {
      return forceAnnotation_;
    }

    public static final int VARIANT_FIELD_NUMBER = 6;
    private int variant_;
    /**
     * optional int32 variant = 6;
     */
    public boolean hasVariant() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 variant = 6;
     */
    public int getVariant() {
      return variant_;
    }

    public static final int INT_PARAM_FIELD_NUMBER = 7;
    private int intParam_;
    /**
     * optional int32 int_param = 7;
     */
    public boolean hasIntParam() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 int_param = 7;
     */
    public int getIntParam() {
      return intParam_;
    }

    public static final int INT_PARAM2_FIELD_NUMBER = 8;
    private int intParam2_;
    /**
     * optional int32 int_param2 = 8;
     */
    public boolean hasIntParam2() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional int32 int_param2 = 8;
     */
    public int getIntParam2() {
      return intParam2_;
    }

    public static final int FLOAT_PARAM_FIELD_NUMBER = 9;
    private float floatParam_;
    /**
     * optional float float_param = 9;
     */
    public boolean hasFloatParam() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional float float_param = 9;
     */
    public float getFloatParam() {
      return floatParam_;
    }

    public static final int FLOAT_PARAM2_FIELD_NUMBER = 10;
    private float floatParam2_;
    /**
     * optional float float_param2 = 10;
     */
    public boolean hasFloatParam2() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional float float_param2 = 10;
     */
    public float getFloatParam2() {
      return floatParam2_;
    }

    public static final int STRING_PARAM_FIELD_NUMBER = 11;
    private java.lang.Object stringParam_;
    /**
     * optional string string_param = 11;
     */
    public boolean hasStringParam() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional string string_param = 11;
     */
    public java.lang.String getStringParam() {
      java.lang.Object ref = stringParam_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          stringParam_ = s;
        }
        return s;
      }
    }
    /**
     * optional string string_param = 11;
     */
    public com.google.protobuf.ByteString
        getStringParamBytes() {
      java.lang.Object ref = stringParam_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stringParam_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STRING_PARAM2_FIELD_NUMBER = 12;
    private java.lang.Object stringParam2_;
    /**
     * optional string string_param2 = 12;
     */
    public boolean hasStringParam2() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional string string_param2 = 12;
     */
    public java.lang.String getStringParam2() {
      java.lang.Object ref = stringParam2_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          stringParam2_ = s;
        }
        return s;
      }
    }
    /**
     * optional string string_param2 = 12;
     */
    public com.google.protobuf.ByteString
        getStringParam2Bytes() {
      java.lang.Object ref = stringParam2_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        stringParam2_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIP_TEXT_OVERRIDE_FIELD_NUMBER = 13;
    private java.lang.Object tipTextOverride_;
    /**
     * optional string tip_text_override = 13;
     */
    public boolean hasTipTextOverride() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional string tip_text_override = 13;
     */
    public java.lang.String getTipTextOverride() {
      java.lang.Object ref = tipTextOverride_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipTextOverride_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_text_override = 13;
     */
    public com.google.protobuf.ByteString
        getTipTextOverrideBytes() {
      java.lang.Object ref = tipTextOverride_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipTextOverride_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIP_ANNOTATION_OVERRIDE_FIELD_NUMBER = 14;
    private java.lang.Object tipAnnotationOverride_;
    /**
     * optional string tip_annotation_override = 14;
     */
    public boolean hasTipAnnotationOverride() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional string tip_annotation_override = 14;
     */
    public java.lang.String getTipAnnotationOverride() {
      java.lang.Object ref = tipAnnotationOverride_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          tipAnnotationOverride_ = s;
        }
        return s;
      }
    }
    /**
     * optional string tip_annotation_override = 14;
     */
    public com.google.protobuf.ByteString
        getTipAnnotationOverrideBytes() {
      java.lang.Object ref = tipAnnotationOverride_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        tipAnnotationOverride_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PANORAMA_SNIPPET_FIELD_NUMBER = 15;
    private java.lang.Object panoramaSnippet_;
    /**
     * optional string panorama_snippet = 15;
     */
    public boolean hasPanoramaSnippet() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional string panorama_snippet = 15;
     */
    public java.lang.String getPanoramaSnippet() {
      java.lang.Object ref = panoramaSnippet_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          panoramaSnippet_ = s;
        }
        return s;
      }
    }
    /**
     * optional string panorama_snippet = 15;
     */
    public com.google.protobuf.ByteString
        getPanoramaSnippetBytes() {
      java.lang.Object ref = panoramaSnippet_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        panoramaSnippet_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      tipId_ = 0;
      referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      forceAnnotation_ = false;
      variant_ = 0;
      intParam_ = 0;
      intParam2_ = 0;
      floatParam_ = 0F;
      floatParam2_ = 0F;
      stringParam_ = "";
      stringParam2_ = "";
      tipTextOverride_ = "";
      tipAnnotationOverride_ = "";
      panoramaSnippet_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, tipId_);
      }
      for (int i = 0; i < referencedAbilities_.size(); i++) {
        output.writeBytes(2, referencedAbilities_.getByteString(i));
      }
      for (int i = 0; i < referencedUnits_.size(); i++) {
        output.writeBytes(3, referencedUnits_.getByteString(i));
      }
      for (int i = 0; i < panoramaClasses_.size(); i++) {
        output.writeBytes(4, panoramaClasses_.getByteString(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(5, forceAnnotation_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(6, variant_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(7, intParam_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(8, intParam2_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeFloat(9, floatParam_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeFloat(10, floatParam2_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(11, getStringParamBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBytes(12, getStringParam2Bytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBytes(13, getTipTextOverrideBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBytes(14, getTipAnnotationOverrideBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBytes(15, getPanoramaSnippetBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, tipId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < referencedAbilities_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(referencedAbilities_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getReferencedAbilitiesList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < referencedUnits_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(referencedUnits_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getReferencedUnitsList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < panoramaClasses_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(panoramaClasses_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getPanoramaClassesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, forceAnnotation_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, variant_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, intParam_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(8, intParam2_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, floatParam_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, floatParam2_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(11, getStringParamBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(12, getStringParam2Bytes());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(13, getTipTextOverrideBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(14, getTipAnnotationOverrideBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(15, getPanoramaSnippetBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ContextualTip}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ContextualTip)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTipOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        tipId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        forceAnnotation_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        variant_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        intParam_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        intParam2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        floatParam_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000100);
        floatParam2_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000200);
        stringParam_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        stringParam2_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        tipTextOverride_ = "";
        bitField0_ = (bitField0_ & ~0x00001000);
        tipAnnotationOverride_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        panoramaSnippet_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ContextualTip_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.tipId_ = tipId_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = referencedAbilities_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.referencedAbilities_ = referencedAbilities_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = referencedUnits_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.referencedUnits_ = referencedUnits_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = panoramaClasses_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.panoramaClasses_ = panoramaClasses_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000002;
        }
        result.forceAnnotation_ = forceAnnotation_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000004;
        }
        result.variant_ = variant_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000008;
        }
        result.intParam_ = intParam_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000010;
        }
        result.intParam2_ = intParam2_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000020;
        }
        result.floatParam_ = floatParam_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000040;
        }
        result.floatParam2_ = floatParam2_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000080;
        }
        result.stringParam_ = stringParam_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000100;
        }
        result.stringParam2_ = stringParam2_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000200;
        }
        result.tipTextOverride_ = tipTextOverride_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000400;
        }
        result.tipAnnotationOverride_ = tipAnnotationOverride_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.panoramaSnippet_ = panoramaSnippet_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip.getDefaultInstance()) return this;
        if (other.hasTipId()) {
          setTipId(other.getTipId());
        }
        if (!other.referencedAbilities_.isEmpty()) {
          if (referencedAbilities_.isEmpty()) {
            referencedAbilities_ = other.referencedAbilities_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureReferencedAbilitiesIsMutable();
            referencedAbilities_.addAll(other.referencedAbilities_);
          }
          onChanged();
        }
        if (!other.referencedUnits_.isEmpty()) {
          if (referencedUnits_.isEmpty()) {
            referencedUnits_ = other.referencedUnits_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureReferencedUnitsIsMutable();
            referencedUnits_.addAll(other.referencedUnits_);
          }
          onChanged();
        }
        if (!other.panoramaClasses_.isEmpty()) {
          if (panoramaClasses_.isEmpty()) {
            panoramaClasses_ = other.panoramaClasses_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensurePanoramaClassesIsMutable();
            panoramaClasses_.addAll(other.panoramaClasses_);
          }
          onChanged();
        }
        if (other.hasForceAnnotation()) {
          setForceAnnotation(other.getForceAnnotation());
        }
        if (other.hasVariant()) {
          setVariant(other.getVariant());
        }
        if (other.hasIntParam()) {
          setIntParam(other.getIntParam());
        }
        if (other.hasIntParam2()) {
          setIntParam2(other.getIntParam2());
        }
        if (other.hasFloatParam()) {
          setFloatParam(other.getFloatParam());
        }
        if (other.hasFloatParam2()) {
          setFloatParam2(other.getFloatParam2());
        }
        if (other.hasStringParam()) {
          bitField0_ |= 0x00000400;
          stringParam_ = other.stringParam_;
          onChanged();
        }
        if (other.hasStringParam2()) {
          bitField0_ |= 0x00000800;
          stringParam2_ = other.stringParam2_;
          onChanged();
        }
        if (other.hasTipTextOverride()) {
          bitField0_ |= 0x00001000;
          tipTextOverride_ = other.tipTextOverride_;
          onChanged();
        }
        if (other.hasTipAnnotationOverride()) {
          bitField0_ |= 0x00002000;
          tipAnnotationOverride_ = other.tipAnnotationOverride_;
          onChanged();
        }
        if (other.hasPanoramaSnippet()) {
          bitField0_ |= 0x00004000;
          panoramaSnippet_ = other.panoramaSnippet_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ContextualTip) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int tipId_ ;
      /**
       * optional int32 tip_id = 1;
       */
      public boolean hasTipId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 tip_id = 1;
       */
      public int getTipId() {
        return tipId_;
      }
      /**
       * optional int32 tip_id = 1;
       */
      public Builder setTipId(int value) {
        bitField0_ |= 0x00000001;
        tipId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 tip_id = 1;
       */
      public Builder clearTipId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        tipId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureReferencedAbilitiesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          referencedAbilities_ = new com.google.protobuf.LazyStringArrayList(referencedAbilities_);
          bitField0_ |= 0x00000002;
         }
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public com.google.protobuf.ProtocolStringList
          getReferencedAbilitiesList() {
        return referencedAbilities_.getUnmodifiableView();
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public int getReferencedAbilitiesCount() {
        return referencedAbilities_.size();
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public java.lang.String getReferencedAbilities(int index) {
        return referencedAbilities_.get(index);
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public com.google.protobuf.ByteString
          getReferencedAbilitiesBytes(int index) {
        return referencedAbilities_.getByteString(index);
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder setReferencedAbilities(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addReferencedAbilities(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addAllReferencedAbilities(
          java.lang.Iterable values) {
        ensureReferencedAbilitiesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, referencedAbilities_);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder clearReferencedAbilities() {
        referencedAbilities_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_abilities = 2;
       */
      public Builder addReferencedAbilitiesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedAbilitiesIsMutable();
        referencedAbilities_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureReferencedUnitsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          referencedUnits_ = new com.google.protobuf.LazyStringArrayList(referencedUnits_);
          bitField0_ |= 0x00000004;
         }
      }
      /**
       * repeated string referenced_units = 3;
       */
      public com.google.protobuf.ProtocolStringList
          getReferencedUnitsList() {
        return referencedUnits_.getUnmodifiableView();
      }
      /**
       * repeated string referenced_units = 3;
       */
      public int getReferencedUnitsCount() {
        return referencedUnits_.size();
      }
      /**
       * repeated string referenced_units = 3;
       */
      public java.lang.String getReferencedUnits(int index) {
        return referencedUnits_.get(index);
      }
      /**
       * repeated string referenced_units = 3;
       */
      public com.google.protobuf.ByteString
          getReferencedUnitsBytes(int index) {
        return referencedUnits_.getByteString(index);
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder setReferencedUnits(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addReferencedUnits(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addAllReferencedUnits(
          java.lang.Iterable values) {
        ensureReferencedUnitsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, referencedUnits_);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder clearReferencedUnits() {
        referencedUnits_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       * repeated string referenced_units = 3;
       */
      public Builder addReferencedUnitsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureReferencedUnitsIsMutable();
        referencedUnits_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePanoramaClassesIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          panoramaClasses_ = new com.google.protobuf.LazyStringArrayList(panoramaClasses_);
          bitField0_ |= 0x00000008;
         }
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public com.google.protobuf.ProtocolStringList
          getPanoramaClassesList() {
        return panoramaClasses_.getUnmodifiableView();
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public int getPanoramaClassesCount() {
        return panoramaClasses_.size();
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public java.lang.String getPanoramaClasses(int index) {
        return panoramaClasses_.get(index);
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public com.google.protobuf.ByteString
          getPanoramaClassesBytes(int index) {
        return panoramaClasses_.getByteString(index);
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder setPanoramaClasses(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addPanoramaClasses(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addAllPanoramaClasses(
          java.lang.Iterable values) {
        ensurePanoramaClassesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, panoramaClasses_);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder clearPanoramaClasses() {
        panoramaClasses_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * repeated string panorama_classes = 4;
       */
      public Builder addPanoramaClassesBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePanoramaClassesIsMutable();
        panoramaClasses_.add(value);
        onChanged();
        return this;
      }

      private boolean forceAnnotation_ ;
      /**
       * optional bool force_annotation = 5;
       */
      public boolean hasForceAnnotation() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool force_annotation = 5;
       */
      public boolean getForceAnnotation() {
        return forceAnnotation_;
      }
      /**
       * optional bool force_annotation = 5;
       */
      public Builder setForceAnnotation(boolean value) {
        bitField0_ |= 0x00000010;
        forceAnnotation_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool force_annotation = 5;
       */
      public Builder clearForceAnnotation() {
        bitField0_ = (bitField0_ & ~0x00000010);
        forceAnnotation_ = false;
        onChanged();
        return this;
      }

      private int variant_ ;
      /**
       * optional int32 variant = 6;
       */
      public boolean hasVariant() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional int32 variant = 6;
       */
      public int getVariant() {
        return variant_;
      }
      /**
       * optional int32 variant = 6;
       */
      public Builder setVariant(int value) {
        bitField0_ |= 0x00000020;
        variant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 variant = 6;
       */
      public Builder clearVariant() {
        bitField0_ = (bitField0_ & ~0x00000020);
        variant_ = 0;
        onChanged();
        return this;
      }

      private int intParam_ ;
      /**
       * optional int32 int_param = 7;
       */
      public boolean hasIntParam() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 int_param = 7;
       */
      public int getIntParam() {
        return intParam_;
      }
      /**
       * optional int32 int_param = 7;
       */
      public Builder setIntParam(int value) {
        bitField0_ |= 0x00000040;
        intParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_param = 7;
       */
      public Builder clearIntParam() {
        bitField0_ = (bitField0_ & ~0x00000040);
        intParam_ = 0;
        onChanged();
        return this;
      }

      private int intParam2_ ;
      /**
       * optional int32 int_param2 = 8;
       */
      public boolean hasIntParam2() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public int getIntParam2() {
        return intParam2_;
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public Builder setIntParam2(int value) {
        bitField0_ |= 0x00000080;
        intParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 int_param2 = 8;
       */
      public Builder clearIntParam2() {
        bitField0_ = (bitField0_ & ~0x00000080);
        intParam2_ = 0;
        onChanged();
        return this;
      }

      private float floatParam_ ;
      /**
       * optional float float_param = 9;
       */
      public boolean hasFloatParam() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional float float_param = 9;
       */
      public float getFloatParam() {
        return floatParam_;
      }
      /**
       * optional float float_param = 9;
       */
      public Builder setFloatParam(float value) {
        bitField0_ |= 0x00000100;
        floatParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_param = 9;
       */
      public Builder clearFloatParam() {
        bitField0_ = (bitField0_ & ~0x00000100);
        floatParam_ = 0F;
        onChanged();
        return this;
      }

      private float floatParam2_ ;
      /**
       * optional float float_param2 = 10;
       */
      public boolean hasFloatParam2() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional float float_param2 = 10;
       */
      public float getFloatParam2() {
        return floatParam2_;
      }
      /**
       * optional float float_param2 = 10;
       */
      public Builder setFloatParam2(float value) {
        bitField0_ |= 0x00000200;
        floatParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float float_param2 = 10;
       */
      public Builder clearFloatParam2() {
        bitField0_ = (bitField0_ & ~0x00000200);
        floatParam2_ = 0F;
        onChanged();
        return this;
      }

      private java.lang.Object stringParam_ = "";
      /**
       * optional string string_param = 11;
       */
      public boolean hasStringParam() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional string string_param = 11;
       */
      public java.lang.String getStringParam() {
        java.lang.Object ref = stringParam_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stringParam_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string string_param = 11;
       */
      public com.google.protobuf.ByteString
          getStringParamBytes() {
        java.lang.Object ref = stringParam_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stringParam_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string string_param = 11;
       */
      public Builder setStringParam(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        stringParam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string string_param = 11;
       */
      public Builder clearStringParam() {
        bitField0_ = (bitField0_ & ~0x00000400);
        stringParam_ = getDefaultInstance().getStringParam();
        onChanged();
        return this;
      }
      /**
       * optional string string_param = 11;
       */
      public Builder setStringParamBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        stringParam_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object stringParam2_ = "";
      /**
       * optional string string_param2 = 12;
       */
      public boolean hasStringParam2() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional string string_param2 = 12;
       */
      public java.lang.String getStringParam2() {
        java.lang.Object ref = stringParam2_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stringParam2_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string string_param2 = 12;
       */
      public com.google.protobuf.ByteString
          getStringParam2Bytes() {
        java.lang.Object ref = stringParam2_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stringParam2_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder setStringParam2(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        stringParam2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder clearStringParam2() {
        bitField0_ = (bitField0_ & ~0x00000800);
        stringParam2_ = getDefaultInstance().getStringParam2();
        onChanged();
        return this;
      }
      /**
       * optional string string_param2 = 12;
       */
      public Builder setStringParam2Bytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        stringParam2_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tipTextOverride_ = "";
      /**
       * optional string tip_text_override = 13;
       */
      public boolean hasTipTextOverride() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional string tip_text_override = 13;
       */
      public java.lang.String getTipTextOverride() {
        java.lang.Object ref = tipTextOverride_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipTextOverride_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_text_override = 13;
       */
      public com.google.protobuf.ByteString
          getTipTextOverrideBytes() {
        java.lang.Object ref = tipTextOverride_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipTextOverride_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder setTipTextOverride(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        tipTextOverride_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder clearTipTextOverride() {
        bitField0_ = (bitField0_ & ~0x00001000);
        tipTextOverride_ = getDefaultInstance().getTipTextOverride();
        onChanged();
        return this;
      }
      /**
       * optional string tip_text_override = 13;
       */
      public Builder setTipTextOverrideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        tipTextOverride_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object tipAnnotationOverride_ = "";
      /**
       * optional string tip_annotation_override = 14;
       */
      public boolean hasTipAnnotationOverride() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public java.lang.String getTipAnnotationOverride() {
        java.lang.Object ref = tipAnnotationOverride_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tipAnnotationOverride_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public com.google.protobuf.ByteString
          getTipAnnotationOverrideBytes() {
        java.lang.Object ref = tipAnnotationOverride_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tipAnnotationOverride_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder setTipAnnotationOverride(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        tipAnnotationOverride_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder clearTipAnnotationOverride() {
        bitField0_ = (bitField0_ & ~0x00002000);
        tipAnnotationOverride_ = getDefaultInstance().getTipAnnotationOverride();
        onChanged();
        return this;
      }
      /**
       * optional string tip_annotation_override = 14;
       */
      public Builder setTipAnnotationOverrideBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        tipAnnotationOverride_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object panoramaSnippet_ = "";
      /**
       * optional string panorama_snippet = 15;
       */
      public boolean hasPanoramaSnippet() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public java.lang.String getPanoramaSnippet() {
        java.lang.Object ref = panoramaSnippet_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            panoramaSnippet_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public com.google.protobuf.ByteString
          getPanoramaSnippetBytes() {
        java.lang.Object ref = panoramaSnippet_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          panoramaSnippet_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder setPanoramaSnippet(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        panoramaSnippet_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder clearPanoramaSnippet() {
        bitField0_ = (bitField0_ & ~0x00004000);
        panoramaSnippet_ = getDefaultInstance().getPanoramaSnippet();
        onChanged();
        return this;
      }
      /**
       * optional string panorama_snippet = 15;
       */
      public Builder setPanoramaSnippetBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00004000;
        panoramaSnippet_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ContextualTip)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ContextualTip(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ContextualTip)
  }

  public interface CDOTAUserMsg_ChatMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_ChatMessage)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 source_player_id = 1;
     */
    boolean hasSourcePlayerId();
    /**
     * optional int32 source_player_id = 1;
     */
    int getSourcePlayerId();

    /**
     * optional uint32 channel_type = 2;
     */
    boolean hasChannelType();
    /**
     * optional uint32 channel_type = 2;
     */
    int getChannelType();

    /**
     * optional string message_text = 3;
     */
    boolean hasMessageText();
    /**
     * optional string message_text = 3;
     */
    java.lang.String getMessageText();
    /**
     * optional string message_text = 3;
     */
    com.google.protobuf.ByteString
        getMessageTextBytes();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_ChatMessage}
   */
  public static final class CDOTAUserMsg_ChatMessage extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_ChatMessage)
      CDOTAUserMsg_ChatMessageOrBuilder {
    // Use CDOTAUserMsg_ChatMessage.newBuilder() to construct.
    private CDOTAUserMsg_ChatMessage(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_ChatMessage(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_ChatMessage defaultInstance;
    public static CDOTAUserMsg_ChatMessage getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_ChatMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_ChatMessage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sourcePlayerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              channelType_ = input.readUInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              messageText_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_ChatMessage parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_ChatMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SOURCE_PLAYER_ID_FIELD_NUMBER = 1;
    private int sourcePlayerId_;
    /**
     * optional int32 source_player_id = 1;
     */
    public boolean hasSourcePlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 source_player_id = 1;
     */
    public int getSourcePlayerId() {
      return sourcePlayerId_;
    }

    public static final int CHANNEL_TYPE_FIELD_NUMBER = 2;
    private int channelType_;
    /**
     * optional uint32 channel_type = 2;
     */
    public boolean hasChannelType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 channel_type = 2;
     */
    public int getChannelType() {
      return channelType_;
    }

    public static final int MESSAGE_TEXT_FIELD_NUMBER = 3;
    private java.lang.Object messageText_;
    /**
     * optional string message_text = 3;
     */
    public boolean hasMessageText() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string message_text = 3;
     */
    public java.lang.String getMessageText() {
      java.lang.Object ref = messageText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          messageText_ = s;
        }
        return s;
      }
    }
    /**
     * optional string message_text = 3;
     */
    public com.google.protobuf.ByteString
        getMessageTextBytes() {
      java.lang.Object ref = messageText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        messageText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      sourcePlayerId_ = 0;
      channelType_ = 0;
      messageText_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getMessageTextBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sourcePlayerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, channelType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getMessageTextBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_ChatMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_ChatMessage)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sourcePlayerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        channelType_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageText_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_ChatMessage_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sourcePlayerId_ = sourcePlayerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.channelType_ = channelType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageText_ = messageText_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage.getDefaultInstance()) return this;
        if (other.hasSourcePlayerId()) {
          setSourcePlayerId(other.getSourcePlayerId());
        }
        if (other.hasChannelType()) {
          setChannelType(other.getChannelType());
        }
        if (other.hasMessageText()) {
          bitField0_ |= 0x00000004;
          messageText_ = other.messageText_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_ChatMessage) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sourcePlayerId_ ;
      /**
       * optional int32 source_player_id = 1;
       */
      public boolean hasSourcePlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public int getSourcePlayerId() {
        return sourcePlayerId_;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder setSourcePlayerId(int value) {
        bitField0_ |= 0x00000001;
        sourcePlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 source_player_id = 1;
       */
      public Builder clearSourcePlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sourcePlayerId_ = 0;
        onChanged();
        return this;
      }

      private int channelType_ ;
      /**
       * optional uint32 channel_type = 2;
       */
      public boolean hasChannelType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public int getChannelType() {
        return channelType_;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder setChannelType(int value) {
        bitField0_ |= 0x00000002;
        channelType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 channel_type = 2;
       */
      public Builder clearChannelType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        channelType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object messageText_ = "";
      /**
       * optional string message_text = 3;
       */
      public boolean hasMessageText() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string message_text = 3;
       */
      public java.lang.String getMessageText() {
        java.lang.Object ref = messageText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            messageText_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string message_text = 3;
       */
      public com.google.protobuf.ByteString
          getMessageTextBytes() {
        java.lang.Object ref = messageText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          messageText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string message_text = 3;
       */
      public Builder setMessageText(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageText_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string message_text = 3;
       */
      public Builder clearMessageText() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageText_ = getDefaultInstance().getMessageText();
        onChanged();
        return this;
      }
      /**
       * optional string message_text = 3;
       */
      public Builder setMessageTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageText_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_ChatMessage)
    }

    static {
      defaultInstance = new CDOTAUserMsg_ChatMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_ChatMessage)
  }

  public interface CDOTAUserMsg_RockPaperScissorsStartedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RockPaperScissorsStarted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_source = 1;
     */
    boolean hasPlayerIdSource();
    /**
     * optional int32 player_id_source = 1;
     */
    int getPlayerIdSource();

    /**
     * optional int32 player_id_target = 2;
     */
    boolean hasPlayerIdTarget();
    /**
     * optional int32 player_id_target = 2;
     */
    int getPlayerIdTarget();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RockPaperScissorsStarted}
   */
  public static final class CDOTAUserMsg_RockPaperScissorsStarted extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RockPaperScissorsStarted)
      CDOTAUserMsg_RockPaperScissorsStartedOrBuilder {
    // Use CDOTAUserMsg_RockPaperScissorsStarted.newBuilder() to construct.
    private CDOTAUserMsg_RockPaperScissorsStarted(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RockPaperScissorsStarted(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RockPaperScissorsStarted defaultInstance;
    public static CDOTAUserMsg_RockPaperScissorsStarted getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RockPaperScissorsStarted getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RockPaperScissorsStarted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdSource_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdTarget_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsStarted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RockPaperScissorsStarted parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RockPaperScissorsStarted(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_SOURCE_FIELD_NUMBER = 1;
    private int playerIdSource_;
    /**
     * optional int32 player_id_source = 1;
     */
    public boolean hasPlayerIdSource() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_source = 1;
     */
    public int getPlayerIdSource() {
      return playerIdSource_;
    }

    public static final int PLAYER_ID_TARGET_FIELD_NUMBER = 2;
    private int playerIdTarget_;
    /**
     * optional int32 player_id_target = 2;
     */
    public boolean hasPlayerIdTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_target = 2;
     */
    public int getPlayerIdTarget() {
      return playerIdTarget_;
    }

    private void initFields() {
      playerIdSource_ = 0;
      playerIdTarget_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdSource_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerIdTarget_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdSource_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerIdTarget_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RockPaperScissorsStarted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RockPaperScissorsStarted)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStartedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsStarted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdSource_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdTarget_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdSource_ = playerIdSource_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdTarget_ = playerIdTarget_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted.getDefaultInstance()) return this;
        if (other.hasPlayerIdSource()) {
          setPlayerIdSource(other.getPlayerIdSource());
        }
        if (other.hasPlayerIdTarget()) {
          setPlayerIdTarget(other.getPlayerIdTarget());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsStarted) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdSource_ ;
      /**
       * optional int32 player_id_source = 1;
       */
      public boolean hasPlayerIdSource() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_source = 1;
       */
      public int getPlayerIdSource() {
        return playerIdSource_;
      }
      /**
       * optional int32 player_id_source = 1;
       */
      public Builder setPlayerIdSource(int value) {
        bitField0_ |= 0x00000001;
        playerIdSource_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_source = 1;
       */
      public Builder clearPlayerIdSource() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdSource_ = 0;
        onChanged();
        return this;
      }

      private int playerIdTarget_ ;
      /**
       * optional int32 player_id_target = 2;
       */
      public boolean hasPlayerIdTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_target = 2;
       */
      public int getPlayerIdTarget() {
        return playerIdTarget_;
      }
      /**
       * optional int32 player_id_target = 2;
       */
      public Builder setPlayerIdTarget(int value) {
        bitField0_ |= 0x00000002;
        playerIdTarget_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_target = 2;
       */
      public Builder clearPlayerIdTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdTarget_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RockPaperScissorsStarted)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RockPaperScissorsStarted(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RockPaperScissorsStarted)
  }

  public interface CDOTAUserMsg_RockPaperScissorsFinishedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_RockPaperScissorsFinished)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional int32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional int32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional int32 player_id_2 = 2;
     */
    int getPlayerId2();

    /**
     * optional int32 player_1_choice = 3;
     */
    boolean hasPlayer1Choice();
    /**
     * optional int32 player_1_choice = 3;
     */
    int getPlayer1Choice();

    /**
     * optional int32 player_2_choice = 4;
     */
    boolean hasPlayer2Choice();
    /**
     * optional int32 player_2_choice = 4;
     */
    int getPlayer2Choice();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_RockPaperScissorsFinished}
   */
  public static final class CDOTAUserMsg_RockPaperScissorsFinished extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_RockPaperScissorsFinished)
      CDOTAUserMsg_RockPaperScissorsFinishedOrBuilder {
    // Use CDOTAUserMsg_RockPaperScissorsFinished.newBuilder() to construct.
    private CDOTAUserMsg_RockPaperScissorsFinished(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_RockPaperScissorsFinished(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_RockPaperScissorsFinished defaultInstance;
    public static CDOTAUserMsg_RockPaperScissorsFinished getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_RockPaperScissorsFinished getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_RockPaperScissorsFinished(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              player1Choice_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              player2Choice_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsFinished_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_RockPaperScissorsFinished parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_RockPaperScissorsFinished(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional int32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional int32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    public static final int PLAYER_1_CHOICE_FIELD_NUMBER = 3;
    private int player1Choice_;
    /**
     * optional int32 player_1_choice = 3;
     */
    public boolean hasPlayer1Choice() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 player_1_choice = 3;
     */
    public int getPlayer1Choice() {
      return player1Choice_;
    }

    public static final int PLAYER_2_CHOICE_FIELD_NUMBER = 4;
    private int player2Choice_;
    /**
     * optional int32 player_2_choice = 4;
     */
    public boolean hasPlayer2Choice() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 player_2_choice = 4;
     */
    public int getPlayer2Choice() {
      return player2Choice_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
      player1Choice_ = 0;
      player2Choice_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, player1Choice_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, player2Choice_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId2_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, player1Choice_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, player2Choice_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_RockPaperScissorsFinished}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_RockPaperScissorsFinished)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinishedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsFinished_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        player1Choice_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        player2Choice_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.player1Choice_ = player1Choice_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.player2Choice_ = player2Choice_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        if (other.hasPlayer1Choice()) {
          setPlayer1Choice(other.getPlayer1Choice());
        }
        if (other.hasPlayer2Choice()) {
          setPlayer2Choice(other.getPlayer2Choice());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_RockPaperScissorsFinished) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional int32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional int32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      private int player1Choice_ ;
      /**
       * optional int32 player_1_choice = 3;
       */
      public boolean hasPlayer1Choice() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 player_1_choice = 3;
       */
      public int getPlayer1Choice() {
        return player1Choice_;
      }
      /**
       * optional int32 player_1_choice = 3;
       */
      public Builder setPlayer1Choice(int value) {
        bitField0_ |= 0x00000004;
        player1Choice_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_1_choice = 3;
       */
      public Builder clearPlayer1Choice() {
        bitField0_ = (bitField0_ & ~0x00000004);
        player1Choice_ = 0;
        onChanged();
        return this;
      }

      private int player2Choice_ ;
      /**
       * optional int32 player_2_choice = 4;
       */
      public boolean hasPlayer2Choice() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 player_2_choice = 4;
       */
      public int getPlayer2Choice() {
        return player2Choice_;
      }
      /**
       * optional int32 player_2_choice = 4;
       */
      public Builder setPlayer2Choice(int value) {
        bitField0_ |= 0x00000008;
        player2Choice_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_2_choice = 4;
       */
      public Builder clearPlayer2Choice() {
        bitField0_ = (bitField0_ & ~0x00000008);
        player2Choice_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_RockPaperScissorsFinished)
    }

    static {
      defaultInstance = new CDOTAUserMsg_RockPaperScissorsFinished(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_RockPaperScissorsFinished)
  }

  public interface CDOTAUserMsg_DuelOpponentKilledOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DuelOpponentKilled)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_winner = 1;
     */
    boolean hasPlayerIdWinner();
    /**
     * optional int32 player_id_winner = 1;
     */
    int getPlayerIdWinner();

    /**
     * optional int32 player_id_loser = 2;
     */
    boolean hasPlayerIdLoser();
    /**
     * optional int32 player_id_loser = 2;
     */
    int getPlayerIdLoser();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DuelOpponentKilled}
   */
  public static final class CDOTAUserMsg_DuelOpponentKilled extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DuelOpponentKilled)
      CDOTAUserMsg_DuelOpponentKilledOrBuilder {
    // Use CDOTAUserMsg_DuelOpponentKilled.newBuilder() to construct.
    private CDOTAUserMsg_DuelOpponentKilled(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DuelOpponentKilled(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DuelOpponentKilled defaultInstance;
    public static CDOTAUserMsg_DuelOpponentKilled getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DuelOpponentKilled getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DuelOpponentKilled(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdWinner_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdLoser_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelOpponentKilled_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DuelOpponentKilled parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DuelOpponentKilled(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_WINNER_FIELD_NUMBER = 1;
    private int playerIdWinner_;
    /**
     * optional int32 player_id_winner = 1;
     */
    public boolean hasPlayerIdWinner() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_winner = 1;
     */
    public int getPlayerIdWinner() {
      return playerIdWinner_;
    }

    public static final int PLAYER_ID_LOSER_FIELD_NUMBER = 2;
    private int playerIdLoser_;
    /**
     * optional int32 player_id_loser = 2;
     */
    public boolean hasPlayerIdLoser() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_loser = 2;
     */
    public int getPlayerIdLoser() {
      return playerIdLoser_;
    }

    private void initFields() {
      playerIdWinner_ = 0;
      playerIdLoser_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdWinner_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerIdLoser_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdWinner_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerIdLoser_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DuelOpponentKilled}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DuelOpponentKilled)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilledOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelOpponentKilled_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdWinner_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdLoser_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdWinner_ = playerIdWinner_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdLoser_ = playerIdLoser_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled.getDefaultInstance()) return this;
        if (other.hasPlayerIdWinner()) {
          setPlayerIdWinner(other.getPlayerIdWinner());
        }
        if (other.hasPlayerIdLoser()) {
          setPlayerIdLoser(other.getPlayerIdLoser());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelOpponentKilled) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdWinner_ ;
      /**
       * optional int32 player_id_winner = 1;
       */
      public boolean hasPlayerIdWinner() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_winner = 1;
       */
      public int getPlayerIdWinner() {
        return playerIdWinner_;
      }
      /**
       * optional int32 player_id_winner = 1;
       */
      public Builder setPlayerIdWinner(int value) {
        bitField0_ |= 0x00000001;
        playerIdWinner_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_winner = 1;
       */
      public Builder clearPlayerIdWinner() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdWinner_ = 0;
        onChanged();
        return this;
      }

      private int playerIdLoser_ ;
      /**
       * optional int32 player_id_loser = 2;
       */
      public boolean hasPlayerIdLoser() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_loser = 2;
       */
      public int getPlayerIdLoser() {
        return playerIdLoser_;
      }
      /**
       * optional int32 player_id_loser = 2;
       */
      public Builder setPlayerIdLoser(int value) {
        bitField0_ |= 0x00000002;
        playerIdLoser_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_loser = 2;
       */
      public Builder clearPlayerIdLoser() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdLoser_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DuelOpponentKilled)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DuelOpponentKilled(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DuelOpponentKilled)
  }

  public interface CDOTAUserMsg_DuelAcceptedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DuelAccepted)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_1 = 1;
     */
    boolean hasPlayerId1();
    /**
     * optional int32 player_id_1 = 1;
     */
    int getPlayerId1();

    /**
     * optional int32 player_id_2 = 2;
     */
    boolean hasPlayerId2();
    /**
     * optional int32 player_id_2 = 2;
     */
    int getPlayerId2();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DuelAccepted}
   */
  public static final class CDOTAUserMsg_DuelAccepted extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DuelAccepted)
      CDOTAUserMsg_DuelAcceptedOrBuilder {
    // Use CDOTAUserMsg_DuelAccepted.newBuilder() to construct.
    private CDOTAUserMsg_DuelAccepted(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DuelAccepted(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DuelAccepted defaultInstance;
    public static CDOTAUserMsg_DuelAccepted getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DuelAccepted getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DuelAccepted(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId1_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerId2_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelAccepted_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelAccepted_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DuelAccepted parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DuelAccepted(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_1_FIELD_NUMBER = 1;
    private int playerId1_;
    /**
     * optional int32 player_id_1 = 1;
     */
    public boolean hasPlayerId1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_1 = 1;
     */
    public int getPlayerId1() {
      return playerId1_;
    }

    public static final int PLAYER_ID_2_FIELD_NUMBER = 2;
    private int playerId2_;
    /**
     * optional int32 player_id_2 = 2;
     */
    public boolean hasPlayerId2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_2 = 2;
     */
    public int getPlayerId2() {
      return playerId2_;
    }

    private void initFields() {
      playerId1_ = 0;
      playerId2_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerId2_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerId2_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DuelAccepted}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DuelAccepted)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAcceptedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelAccepted_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelAccepted_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId1_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelAccepted_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId1_ = playerId1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerId2_ = playerId2_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted.getDefaultInstance()) return this;
        if (other.hasPlayerId1()) {
          setPlayerId1(other.getPlayerId1());
        }
        if (other.hasPlayerId2()) {
          setPlayerId2(other.getPlayerId2());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelAccepted) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId1_ ;
      /**
       * optional int32 player_id_1 = 1;
       */
      public boolean hasPlayerId1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public int getPlayerId1() {
        return playerId1_;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder setPlayerId1(int value) {
        bitField0_ |= 0x00000001;
        playerId1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_1 = 1;
       */
      public Builder clearPlayerId1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId1_ = 0;
        onChanged();
        return this;
      }

      private int playerId2_ ;
      /**
       * optional int32 player_id_2 = 2;
       */
      public boolean hasPlayerId2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public int getPlayerId2() {
        return playerId2_;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder setPlayerId2(int value) {
        bitField0_ |= 0x00000002;
        playerId2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_2 = 2;
       */
      public Builder clearPlayerId2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerId2_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DuelAccepted)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DuelAccepted(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DuelAccepted)
  }

  public interface CDOTAUserMsg_DuelRequestedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_DuelRequested)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_requestor = 1;
     */
    boolean hasPlayerIdRequestor();
    /**
     * optional int32 player_id_requestor = 1;
     */
    int getPlayerIdRequestor();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_DuelRequested}
   */
  public static final class CDOTAUserMsg_DuelRequested extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_DuelRequested)
      CDOTAUserMsg_DuelRequestedOrBuilder {
    // Use CDOTAUserMsg_DuelRequested.newBuilder() to construct.
    private CDOTAUserMsg_DuelRequested(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_DuelRequested(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_DuelRequested defaultInstance;
    public static CDOTAUserMsg_DuelRequested getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_DuelRequested getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_DuelRequested(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdRequestor_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelRequested_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelRequested_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_DuelRequested parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_DuelRequested(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_REQUESTOR_FIELD_NUMBER = 1;
    private int playerIdRequestor_;
    /**
     * optional int32 player_id_requestor = 1;
     */
    public boolean hasPlayerIdRequestor() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_requestor = 1;
     */
    public int getPlayerIdRequestor() {
      return playerIdRequestor_;
    }

    private void initFields() {
      playerIdRequestor_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdRequestor_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdRequestor_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_DuelRequested}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_DuelRequested)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequestedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelRequested_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelRequested_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdRequestor_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_DuelRequested_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdRequestor_ = playerIdRequestor_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested.getDefaultInstance()) return this;
        if (other.hasPlayerIdRequestor()) {
          setPlayerIdRequestor(other.getPlayerIdRequestor());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_DuelRequested) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdRequestor_ ;
      /**
       * optional int32 player_id_requestor = 1;
       */
      public boolean hasPlayerIdRequestor() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_requestor = 1;
       */
      public int getPlayerIdRequestor() {
        return playerIdRequestor_;
      }
      /**
       * optional int32 player_id_requestor = 1;
       */
      public Builder setPlayerIdRequestor(int value) {
        bitField0_ |= 0x00000001;
        playerIdRequestor_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_requestor = 1;
       */
      public Builder clearPlayerIdRequestor() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdRequestor_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_DuelRequested)
    }

    static {
      defaultInstance = new CDOTAUserMsg_DuelRequested(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_DuelRequested)
  }

  public interface CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilledOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required int32 player_id_killer = 1 [default = -1];
     */
    boolean hasPlayerIdKiller();
    /**
     * required int32 player_id_killer = 1 [default = -1];
     */
    int getPlayerIdKiller();

    /**
     * required int32 player_id_target = 2 [default = -1];
     */
    boolean hasPlayerIdTarget();
    /**
     * required int32 player_id_target = 2 [default = -1];
     */
    int getPlayerIdTarget();

    /**
     * required int32 points = 3;
     */
    boolean hasPoints();
    /**
     * required int32 points = 3;
     */
    int getPoints();

    /**
     * required int32 points_total = 4;
     */
    boolean hasPointsTotal();
    /**
     * required int32 points_total = 4;
     */
    int getPointsTotal();

    /**
     * required bool last_hit = 5;
     */
    boolean hasLastHit();
    /**
     * required bool last_hit = 5;
     */
    boolean getLastHit();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled}
   */
  public static final class CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)
      CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilledOrBuilder {
    // Use CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.newBuilder() to construct.
    private CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled defaultInstance;
    public static CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdKiller_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdTarget_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              points_ = input.readInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              pointsTotal_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              lastHit_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_KILLER_FIELD_NUMBER = 1;
    private int playerIdKiller_;
    /**
     * required int32 player_id_killer = 1 [default = -1];
     */
    public boolean hasPlayerIdKiller() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required int32 player_id_killer = 1 [default = -1];
     */
    public int getPlayerIdKiller() {
      return playerIdKiller_;
    }

    public static final int PLAYER_ID_TARGET_FIELD_NUMBER = 2;
    private int playerIdTarget_;
    /**
     * required int32 player_id_target = 2 [default = -1];
     */
    public boolean hasPlayerIdTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * required int32 player_id_target = 2 [default = -1];
     */
    public int getPlayerIdTarget() {
      return playerIdTarget_;
    }

    public static final int POINTS_FIELD_NUMBER = 3;
    private int points_;
    /**
     * required int32 points = 3;
     */
    public boolean hasPoints() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * required int32 points = 3;
     */
    public int getPoints() {
      return points_;
    }

    public static final int POINTS_TOTAL_FIELD_NUMBER = 4;
    private int pointsTotal_;
    /**
     * required int32 points_total = 4;
     */
    public boolean hasPointsTotal() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * required int32 points_total = 4;
     */
    public int getPointsTotal() {
      return pointsTotal_;
    }

    public static final int LAST_HIT_FIELD_NUMBER = 5;
    private boolean lastHit_;
    /**
     * required bool last_hit = 5;
     */
    public boolean hasLastHit() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * required bool last_hit = 5;
     */
    public boolean getLastHit() {
      return lastHit_;
    }

    private void initFields() {
      playerIdKiller_ = -1;
      playerIdTarget_ = -1;
      points_ = 0;
      pointsTotal_ = 0;
      lastHit_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasPlayerIdKiller()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPlayerIdTarget()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPoints()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPointsTotal()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLastHit()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdKiller_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerIdTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, points_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, pointsTotal_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, lastHit_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdKiller_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerIdTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, points_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, pointsTotal_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, lastHit_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilledOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdKiller_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdTarget_ = -1;
        bitField0_ = (bitField0_ & ~0x00000002);
        points_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        pointsTotal_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        lastHit_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdKiller_ = playerIdKiller_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdTarget_ = playerIdTarget_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.points_ = points_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.pointsTotal_ = pointsTotal_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.lastHit_ = lastHit_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled.getDefaultInstance()) return this;
        if (other.hasPlayerIdKiller()) {
          setPlayerIdKiller(other.getPlayerIdKiller());
        }
        if (other.hasPlayerIdTarget()) {
          setPlayerIdTarget(other.getPlayerIdTarget());
        }
        if (other.hasPoints()) {
          setPoints(other.getPoints());
        }
        if (other.hasPointsTotal()) {
          setPointsTotal(other.getPointsTotal());
        }
        if (other.hasLastHit()) {
          setLastHit(other.getLastHit());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPlayerIdKiller()) {
          
          return false;
        }
        if (!hasPlayerIdTarget()) {
          
          return false;
        }
        if (!hasPoints()) {
          
          return false;
        }
        if (!hasPointsTotal()) {
          
          return false;
        }
        if (!hasLastHit()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdKiller_ = -1;
      /**
       * required int32 player_id_killer = 1 [default = -1];
       */
      public boolean hasPlayerIdKiller() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required int32 player_id_killer = 1 [default = -1];
       */
      public int getPlayerIdKiller() {
        return playerIdKiller_;
      }
      /**
       * required int32 player_id_killer = 1 [default = -1];
       */
      public Builder setPlayerIdKiller(int value) {
        bitField0_ |= 0x00000001;
        playerIdKiller_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 player_id_killer = 1 [default = -1];
       */
      public Builder clearPlayerIdKiller() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdKiller_ = -1;
        onChanged();
        return this;
      }

      private int playerIdTarget_ = -1;
      /**
       * required int32 player_id_target = 2 [default = -1];
       */
      public boolean hasPlayerIdTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * required int32 player_id_target = 2 [default = -1];
       */
      public int getPlayerIdTarget() {
        return playerIdTarget_;
      }
      /**
       * required int32 player_id_target = 2 [default = -1];
       */
      public Builder setPlayerIdTarget(int value) {
        bitField0_ |= 0x00000002;
        playerIdTarget_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 player_id_target = 2 [default = -1];
       */
      public Builder clearPlayerIdTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdTarget_ = -1;
        onChanged();
        return this;
      }

      private int points_ ;
      /**
       * required int32 points = 3;
       */
      public boolean hasPoints() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * required int32 points = 3;
       */
      public int getPoints() {
        return points_;
      }
      /**
       * required int32 points = 3;
       */
      public Builder setPoints(int value) {
        bitField0_ |= 0x00000004;
        points_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 points = 3;
       */
      public Builder clearPoints() {
        bitField0_ = (bitField0_ & ~0x00000004);
        points_ = 0;
        onChanged();
        return this;
      }

      private int pointsTotal_ ;
      /**
       * required int32 points_total = 4;
       */
      public boolean hasPointsTotal() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * required int32 points_total = 4;
       */
      public int getPointsTotal() {
        return pointsTotal_;
      }
      /**
       * required int32 points_total = 4;
       */
      public Builder setPointsTotal(int value) {
        bitField0_ |= 0x00000008;
        pointsTotal_ = value;
        onChanged();
        return this;
      }
      /**
       * required int32 points_total = 4;
       */
      public Builder clearPointsTotal() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pointsTotal_ = 0;
        onChanged();
        return this;
      }

      private boolean lastHit_ ;
      /**
       * required bool last_hit = 5;
       */
      public boolean hasLastHit() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * required bool last_hit = 5;
       */
      public boolean getLastHit() {
        return lastHit_;
      }
      /**
       * required bool last_hit = 5;
       */
      public Builder setLastHit(boolean value) {
        bitField0_ |= 0x00000010;
        lastHit_ = value;
        onChanged();
        return this;
      }
      /**
       * required bool last_hit = 5;
       */
      public Builder clearLastHit() {
        bitField0_ = (bitField0_ & ~0x00000010);
        lastHit_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)
    }

    static {
      defaultInstance = new CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled)
  }

  public interface CDOTAUserMsg_PlayerDraftSuggestPickOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PlayerDraftSuggestPick)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1 [default = -1];
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    int getPlayerId();

    /**
     * optional int32 suggestion_player_id = 2 [default = -1];
     */
    boolean hasSuggestionPlayerId();
    /**
     * optional int32 suggestion_player_id = 2 [default = -1];
     */
    int getSuggestionPlayerId();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PlayerDraftSuggestPick}
   */
  public static final class CDOTAUserMsg_PlayerDraftSuggestPick extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PlayerDraftSuggestPick)
      CDOTAUserMsg_PlayerDraftSuggestPickOrBuilder {
    // Use CDOTAUserMsg_PlayerDraftSuggestPick.newBuilder() to construct.
    private CDOTAUserMsg_PlayerDraftSuggestPick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PlayerDraftSuggestPick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PlayerDraftSuggestPick defaultInstance;
    public static CDOTAUserMsg_PlayerDraftSuggestPick getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PlayerDraftSuggestPick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PlayerDraftSuggestPick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              suggestionPlayerId_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PlayerDraftSuggestPick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PlayerDraftSuggestPick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int SUGGESTION_PLAYER_ID_FIELD_NUMBER = 2;
    private int suggestionPlayerId_;
    /**
     * optional int32 suggestion_player_id = 2 [default = -1];
     */
    public boolean hasSuggestionPlayerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 suggestion_player_id = 2 [default = -1];
     */
    public int getSuggestionPlayerId() {
      return suggestionPlayerId_;
    }

    private void initFields() {
      playerId_ = -1;
      suggestionPlayerId_ = -1;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, suggestionPlayerId_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, suggestionPlayerId_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PlayerDraftSuggestPick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PlayerDraftSuggestPick)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        suggestionPlayerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.suggestionPlayerId_ = suggestionPlayerId_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasSuggestionPlayerId()) {
          setSuggestionPlayerId(other.getSuggestionPlayerId());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftSuggestPick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ = -1;
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = -1;
        onChanged();
        return this;
      }

      private int suggestionPlayerId_ = -1;
      /**
       * optional int32 suggestion_player_id = 2 [default = -1];
       */
      public boolean hasSuggestionPlayerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 suggestion_player_id = 2 [default = -1];
       */
      public int getSuggestionPlayerId() {
        return suggestionPlayerId_;
      }
      /**
       * optional int32 suggestion_player_id = 2 [default = -1];
       */
      public Builder setSuggestionPlayerId(int value) {
        bitField0_ |= 0x00000002;
        suggestionPlayerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 suggestion_player_id = 2 [default = -1];
       */
      public Builder clearSuggestionPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        suggestionPlayerId_ = -1;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PlayerDraftSuggestPick)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PlayerDraftSuggestPick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PlayerDraftSuggestPick)
  }

  public interface CDOTAUserMsg_PlayerDraftPickOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_PlayerDraftPick)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id_captain = 1 [default = -1];
     */
    boolean hasPlayerIdCaptain();
    /**
     * optional int32 player_id_captain = 1 [default = -1];
     */
    int getPlayerIdCaptain();

    /**
     * optional int32 player_id_target = 2 [default = -1];
     */
    boolean hasPlayerIdTarget();
    /**
     * optional int32 player_id_target = 2 [default = -1];
     */
    int getPlayerIdTarget();

    /**
     * optional int32 team = 3;
     */
    boolean hasTeam();
    /**
     * optional int32 team = 3;
     */
    int getTeam();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_PlayerDraftPick}
   */
  public static final class CDOTAUserMsg_PlayerDraftPick extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_PlayerDraftPick)
      CDOTAUserMsg_PlayerDraftPickOrBuilder {
    // Use CDOTAUserMsg_PlayerDraftPick.newBuilder() to construct.
    private CDOTAUserMsg_PlayerDraftPick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_PlayerDraftPick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_PlayerDraftPick defaultInstance;
    public static CDOTAUserMsg_PlayerDraftPick getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_PlayerDraftPick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_PlayerDraftPick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerIdCaptain_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playerIdTarget_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              team_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftPick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_PlayerDraftPick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_PlayerDraftPick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_CAPTAIN_FIELD_NUMBER = 1;
    private int playerIdCaptain_;
    /**
     * optional int32 player_id_captain = 1 [default = -1];
     */
    public boolean hasPlayerIdCaptain() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id_captain = 1 [default = -1];
     */
    public int getPlayerIdCaptain() {
      return playerIdCaptain_;
    }

    public static final int PLAYER_ID_TARGET_FIELD_NUMBER = 2;
    private int playerIdTarget_;
    /**
     * optional int32 player_id_target = 2 [default = -1];
     */
    public boolean hasPlayerIdTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 player_id_target = 2 [default = -1];
     */
    public int getPlayerIdTarget() {
      return playerIdTarget_;
    }

    public static final int TEAM_FIELD_NUMBER = 3;
    private int team_;
    /**
     * optional int32 team = 3;
     */
    public boolean hasTeam() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 team = 3;
     */
    public int getTeam() {
      return team_;
    }

    private void initFields() {
      playerIdCaptain_ = -1;
      playerIdTarget_ = -1;
      team_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerIdCaptain_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playerIdTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, team_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerIdCaptain_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playerIdTarget_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, team_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_PlayerDraftPick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_PlayerDraftPick)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftPick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerIdCaptain_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdTarget_ = -1;
        bitField0_ = (bitField0_ & ~0x00000002);
        team_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerIdCaptain_ = playerIdCaptain_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playerIdTarget_ = playerIdTarget_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.team_ = team_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick.getDefaultInstance()) return this;
        if (other.hasPlayerIdCaptain()) {
          setPlayerIdCaptain(other.getPlayerIdCaptain());
        }
        if (other.hasPlayerIdTarget()) {
          setPlayerIdTarget(other.getPlayerIdTarget());
        }
        if (other.hasTeam()) {
          setTeam(other.getTeam());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_PlayerDraftPick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerIdCaptain_ = -1;
      /**
       * optional int32 player_id_captain = 1 [default = -1];
       */
      public boolean hasPlayerIdCaptain() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id_captain = 1 [default = -1];
       */
      public int getPlayerIdCaptain() {
        return playerIdCaptain_;
      }
      /**
       * optional int32 player_id_captain = 1 [default = -1];
       */
      public Builder setPlayerIdCaptain(int value) {
        bitField0_ |= 0x00000001;
        playerIdCaptain_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_captain = 1 [default = -1];
       */
      public Builder clearPlayerIdCaptain() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerIdCaptain_ = -1;
        onChanged();
        return this;
      }

      private int playerIdTarget_ = -1;
      /**
       * optional int32 player_id_target = 2 [default = -1];
       */
      public boolean hasPlayerIdTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 player_id_target = 2 [default = -1];
       */
      public int getPlayerIdTarget() {
        return playerIdTarget_;
      }
      /**
       * optional int32 player_id_target = 2 [default = -1];
       */
      public Builder setPlayerIdTarget(int value) {
        bitField0_ |= 0x00000002;
        playerIdTarget_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id_target = 2 [default = -1];
       */
      public Builder clearPlayerIdTarget() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playerIdTarget_ = -1;
        onChanged();
        return this;
      }

      private int team_ ;
      /**
       * optional int32 team = 3;
       */
      public boolean hasTeam() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 team = 3;
       */
      public int getTeam() {
        return team_;
      }
      /**
       * optional int32 team = 3;
       */
      public Builder setTeam(int value) {
        bitField0_ |= 0x00000004;
        team_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 team = 3;
       */
      public Builder clearTeam() {
        bitField0_ = (bitField0_ & ~0x00000004);
        team_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_PlayerDraftPick)
    }

    static {
      defaultInstance = new CDOTAUserMsg_PlayerDraftPick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_PlayerDraftPick)
  }

  public interface CDOTAUserMsg_FacetPingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_FacetPing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1 [default = -1];
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    int getPlayerId();

    /**
     * optional uint32 facet_strhash = 2;
     */
    boolean hasFacetStrhash();
    /**
     * optional uint32 facet_strhash = 2;
     */
    int getFacetStrhash();

    /**
     * optional uint32 entity_id = 3;
     */
    boolean hasEntityId();
    /**
     * optional uint32 entity_id = 3;
     */
    int getEntityId();

    /**
     * optional bool all_chat = 4;
     */
    boolean hasAllChat();
    /**
     * optional bool all_chat = 4;
     */
    boolean getAllChat();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_FacetPing}
   */
  public static final class CDOTAUserMsg_FacetPing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_FacetPing)
      CDOTAUserMsg_FacetPingOrBuilder {
    // Use CDOTAUserMsg_FacetPing.newBuilder() to construct.
    private CDOTAUserMsg_FacetPing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_FacetPing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_FacetPing defaultInstance;
    public static CDOTAUserMsg_FacetPing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_FacetPing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_FacetPing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              facetStrhash_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              entityId_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              allChat_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FacetPing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FacetPing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_FacetPing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_FacetPing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int FACET_STRHASH_FIELD_NUMBER = 2;
    private int facetStrhash_;
    /**
     * optional uint32 facet_strhash = 2;
     */
    public boolean hasFacetStrhash() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 facet_strhash = 2;
     */
    public int getFacetStrhash() {
      return facetStrhash_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 3;
    private int entityId_;
    /**
     * optional uint32 entity_id = 3;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 entity_id = 3;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int ALL_CHAT_FIELD_NUMBER = 4;
    private boolean allChat_;
    /**
     * optional bool all_chat = 4;
     */
    public boolean hasAllChat() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool all_chat = 4;
     */
    public boolean getAllChat() {
      return allChat_;
    }

    private void initFields() {
      playerId_ = -1;
      facetStrhash_ = 0;
      entityId_ = 0;
      allChat_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, facetStrhash_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, entityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, allChat_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, facetStrhash_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, entityId_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, allChat_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_FacetPing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_FacetPing)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FacetPing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FacetPing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        facetStrhash_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        allChat_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_FacetPing_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.facetStrhash_ = facetStrhash_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.allChat_ = allChat_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasFacetStrhash()) {
          setFacetStrhash(other.getFacetStrhash());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasAllChat()) {
          setAllChat(other.getAllChat());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_FacetPing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ = -1;
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = -1;
        onChanged();
        return this;
      }

      private int facetStrhash_ ;
      /**
       * optional uint32 facet_strhash = 2;
       */
      public boolean hasFacetStrhash() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 facet_strhash = 2;
       */
      public int getFacetStrhash() {
        return facetStrhash_;
      }
      /**
       * optional uint32 facet_strhash = 2;
       */
      public Builder setFacetStrhash(int value) {
        bitField0_ |= 0x00000002;
        facetStrhash_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 facet_strhash = 2;
       */
      public Builder clearFacetStrhash() {
        bitField0_ = (bitField0_ & ~0x00000002);
        facetStrhash_ = 0;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional uint32 entity_id = 3;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 entity_id = 3;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional uint32 entity_id = 3;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000004;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_id = 3;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000004);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private boolean allChat_ ;
      /**
       * optional bool all_chat = 4;
       */
      public boolean hasAllChat() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool all_chat = 4;
       */
      public boolean getAllChat() {
        return allChat_;
      }
      /**
       * optional bool all_chat = 4;
       */
      public Builder setAllChat(boolean value) {
        bitField0_ |= 0x00000008;
        allChat_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool all_chat = 4;
       */
      public Builder clearAllChat() {
        bitField0_ = (bitField0_ & ~0x00000008);
        allChat_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_FacetPing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_FacetPing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_FacetPing)
  }

  public interface CDOTAUserMsg_InnatePingOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDOTAUserMsg_InnatePing)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 player_id = 1 [default = -1];
     */
    boolean hasPlayerId();
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    int getPlayerId();

    /**
     * optional uint32 entity_id = 2;
     */
    boolean hasEntityId();
    /**
     * optional uint32 entity_id = 2;
     */
    int getEntityId();

    /**
     * optional bool all_chat = 3;
     */
    boolean hasAllChat();
    /**
     * optional bool all_chat = 3;
     */
    boolean getAllChat();
  }
  /**
   * Protobuf type {@code CDOTAUserMsg_InnatePing}
   */
  public static final class CDOTAUserMsg_InnatePing extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDOTAUserMsg_InnatePing)
      CDOTAUserMsg_InnatePingOrBuilder {
    // Use CDOTAUserMsg_InnatePing.newBuilder() to construct.
    private CDOTAUserMsg_InnatePing(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDOTAUserMsg_InnatePing(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDOTAUserMsg_InnatePing defaultInstance;
    public static CDOTAUserMsg_InnatePing getDefaultInstance() {
      return defaultInstance;
    }

    public CDOTAUserMsg_InnatePing getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDOTAUserMsg_InnatePing(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              playerId_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              entityId_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              allChat_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InnatePing_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InnatePing_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDOTAUserMsg_InnatePing parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDOTAUserMsg_InnatePing(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYER_ID_FIELD_NUMBER = 1;
    private int playerId_;
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public boolean hasPlayerId() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 player_id = 1 [default = -1];
     */
    public int getPlayerId() {
      return playerId_;
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 2;
    private int entityId_;
    /**
     * optional uint32 entity_id = 2;
     */
    public boolean hasEntityId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 entity_id = 2;
     */
    public int getEntityId() {
      return entityId_;
    }

    public static final int ALL_CHAT_FIELD_NUMBER = 3;
    private boolean allChat_;
    /**
     * optional bool all_chat = 3;
     */
    public boolean hasAllChat() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bool all_chat = 3;
     */
    public boolean getAllChat() {
      return allChat_;
    }

    private void initFields() {
      playerId_ = -1;
      entityId_ = 0;
      allChat_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, entityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, allChat_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, playerId_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, entityId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, allChat_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDOTAUserMsg_InnatePing}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDOTAUserMsg_InnatePing)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InnatePing_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InnatePing_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playerId_ = -1;
        bitField0_ = (bitField0_ & ~0x00000001);
        entityId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        allChat_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CDOTAUserMsg_InnatePing_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playerId_ = playerId_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.entityId_ = entityId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.allChat_ = allChat_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing.getDefaultInstance()) return this;
        if (other.hasPlayerId()) {
          setPlayerId(other.getPlayerId());
        }
        if (other.hasEntityId()) {
          setEntityId(other.getEntityId());
        }
        if (other.hasAllChat()) {
          setAllChat(other.getAllChat());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CDOTAUserMsg_InnatePing) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int playerId_ = -1;
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public boolean hasPlayerId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public int getPlayerId() {
        return playerId_;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder setPlayerId(int value) {
        bitField0_ |= 0x00000001;
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 player_id = 1 [default = -1];
       */
      public Builder clearPlayerId() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playerId_ = -1;
        onChanged();
        return this;
      }

      private int entityId_ ;
      /**
       * optional uint32 entity_id = 2;
       */
      public boolean hasEntityId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 entity_id = 2;
       */
      public int getEntityId() {
        return entityId_;
      }
      /**
       * optional uint32 entity_id = 2;
       */
      public Builder setEntityId(int value) {
        bitField0_ |= 0x00000002;
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 entity_id = 2;
       */
      public Builder clearEntityId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        entityId_ = 0;
        onChanged();
        return this;
      }

      private boolean allChat_ ;
      /**
       * optional bool all_chat = 3;
       */
      public boolean hasAllChat() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool all_chat = 3;
       */
      public boolean getAllChat() {
        return allChat_;
      }
      /**
       * optional bool all_chat = 3;
       */
      public Builder setAllChat(boolean value) {
        bitField0_ |= 0x00000004;
        allChat_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool all_chat = 3;
       */
      public Builder clearAllChat() {
        bitField0_ = (bitField0_ & ~0x00000004);
        allChat_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDOTAUserMsg_InnatePing)
    }

    static {
      defaultInstance = new CDOTAUserMsg_InnatePing(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDOTAUserMsg_InnatePing)
  }

  public interface CMsgDOTACombatLogEntryOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CMsgDOTACombatLogEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    boolean hasType();
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES getType();

    /**
     * optional uint32 target_name = 2;
     */
    boolean hasTargetName();
    /**
     * optional uint32 target_name = 2;
     */
    int getTargetName();

    /**
     * optional uint32 target_source_name = 3;
     */
    boolean hasTargetSourceName();
    /**
     * optional uint32 target_source_name = 3;
     */
    int getTargetSourceName();

    /**
     * optional uint32 attacker_name = 4;
     */
    boolean hasAttackerName();
    /**
     * optional uint32 attacker_name = 4;
     */
    int getAttackerName();

    /**
     * optional uint32 damage_source_name = 5;
     */
    boolean hasDamageSourceName();
    /**
     * optional uint32 damage_source_name = 5;
     */
    int getDamageSourceName();

    /**
     * optional uint32 inflictor_name = 6;
     */
    boolean hasInflictorName();
    /**
     * optional uint32 inflictor_name = 6;
     */
    int getInflictorName();

    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean hasIsAttackerIllusion();
    /**
     * optional bool is_attacker_illusion = 7;
     */
    boolean getIsAttackerIllusion();

    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean hasIsAttackerHero();
    /**
     * optional bool is_attacker_hero = 8;
     */
    boolean getIsAttackerHero();

    /**
     * optional bool is_target_illusion = 9;
     */
    boolean hasIsTargetIllusion();
    /**
     * optional bool is_target_illusion = 9;
     */
    boolean getIsTargetIllusion();

    /**
     * optional bool is_target_hero = 10;
     */
    boolean hasIsTargetHero();
    /**
     * optional bool is_target_hero = 10;
     */
    boolean getIsTargetHero();

    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean hasIsVisibleRadiant();
    /**
     * optional bool is_visible_radiant = 11;
     */
    boolean getIsVisibleRadiant();

    /**
     * optional bool is_visible_dire = 12;
     */
    boolean hasIsVisibleDire();
    /**
     * optional bool is_visible_dire = 12;
     */
    boolean getIsVisibleDire();

    /**
     * optional uint32 value = 13;
     */
    boolean hasValue();
    /**
     * optional uint32 value = 13;
     */
    int getValue();

    /**
     * optional int32 health = 14;
     */
    boolean hasHealth();
    /**
     * optional int32 health = 14;
     */
    int getHealth();

    /**
     * optional float timestamp = 15;
     */
    boolean hasTimestamp();
    /**
     * optional float timestamp = 15;
     */
    float getTimestamp();

    /**
     * optional float stun_duration = 16;
     */
    boolean hasStunDuration();
    /**
     * optional float stun_duration = 16;
     */
    float getStunDuration();

    /**
     * optional float slow_duration = 17;
     */
    boolean hasSlowDuration();
    /**
     * optional float slow_duration = 17;
     */
    float getSlowDuration();

    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean hasIsAbilityToggleOn();
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    boolean getIsAbilityToggleOn();

    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean hasIsAbilityToggleOff();
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    boolean getIsAbilityToggleOff();

    /**
     * optional uint32 ability_level = 20;
     */
    boolean hasAbilityLevel();
    /**
     * optional uint32 ability_level = 20;
     */
    int getAbilityLevel();

    /**
     * optional float location_x = 21;
     */
    boolean hasLocationX();
    /**
     * optional float location_x = 21;
     */
    float getLocationX();

    /**
     * optional float location_y = 22;
     */
    boolean hasLocationY();
    /**
     * optional float location_y = 22;
     */
    float getLocationY();

    /**
     * optional uint32 gold_reason = 23;
     */
    boolean hasGoldReason();
    /**
     * optional uint32 gold_reason = 23;
     */
    int getGoldReason();

    /**
     * optional float timestamp_raw = 24;
     */
    boolean hasTimestampRaw();
    /**
     * optional float timestamp_raw = 24;
     */
    float getTimestampRaw();

    /**
     * optional float modifier_duration = 25;
     */
    boolean hasModifierDuration();
    /**
     * optional float modifier_duration = 25;
     */
    float getModifierDuration();

    /**
     * optional uint32 xp_reason = 26;
     */
    boolean hasXpReason();
    /**
     * optional uint32 xp_reason = 26;
     */
    int getXpReason();

    /**
     * optional uint32 last_hits = 27;
     */
    boolean hasLastHits();
    /**
     * optional uint32 last_hits = 27;
     */
    int getLastHits();

    /**
     * optional uint32 attacker_team = 28;
     */
    boolean hasAttackerTeam();
    /**
     * optional uint32 attacker_team = 28;
     */
    int getAttackerTeam();

    /**
     * optional uint32 target_team = 29;
     */
    boolean hasTargetTeam();
    /**
     * optional uint32 target_team = 29;
     */
    int getTargetTeam();

    /**
     * optional uint32 obs_wards_placed = 30;
     */
    boolean hasObsWardsPlaced();
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    int getObsWardsPlaced();

    /**
     * optional uint32 assist_player0 = 31;
     */
    boolean hasAssistPlayer0();
    /**
     * optional uint32 assist_player0 = 31;
     */
    int getAssistPlayer0();

    /**
     * optional uint32 assist_player1 = 32;
     */
    boolean hasAssistPlayer1();
    /**
     * optional uint32 assist_player1 = 32;
     */
    int getAssistPlayer1();

    /**
     * optional uint32 assist_player2 = 33;
     */
    boolean hasAssistPlayer2();
    /**
     * optional uint32 assist_player2 = 33;
     */
    int getAssistPlayer2();

    /**
     * optional uint32 assist_player3 = 34;
     */
    boolean hasAssistPlayer3();
    /**
     * optional uint32 assist_player3 = 34;
     */
    int getAssistPlayer3();

    /**
     * optional uint32 stack_count = 35;
     */
    boolean hasStackCount();
    /**
     * optional uint32 stack_count = 35;
     */
    int getStackCount();

    /**
     * optional bool hidden_modifier = 36;
     */
    boolean hasHiddenModifier();
    /**
     * optional bool hidden_modifier = 36;
     */
    boolean getHiddenModifier();

    /**
     * optional bool is_target_building = 37;
     */
    boolean hasIsTargetBuilding();
    /**
     * optional bool is_target_building = 37;
     */
    boolean getIsTargetBuilding();

    /**
     * optional uint32 neutral_camp_type = 38;
     */
    boolean hasNeutralCampType();
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    int getNeutralCampType();

    /**
     * optional uint32 rune_type = 39;
     */
    boolean hasRuneType();
    /**
     * optional uint32 rune_type = 39;
     */
    int getRuneType();

    /**
     * repeated int32 assist_players = 40;
     */
    java.util.List getAssistPlayersList();
    /**
     * repeated int32 assist_players = 40;
     */
    int getAssistPlayersCount();
    /**
     * repeated int32 assist_players = 40;
     */
    int getAssistPlayers(int index);

    /**
     * optional bool is_heal_save = 41;
     */
    boolean hasIsHealSave();
    /**
     * optional bool is_heal_save = 41;
     */
    boolean getIsHealSave();

    /**
     * optional bool is_ultimate_ability = 42;
     */
    boolean hasIsUltimateAbility();
    /**
     * optional bool is_ultimate_ability = 42;
     */
    boolean getIsUltimateAbility();

    /**
     * optional uint32 attacker_hero_level = 43;
     */
    boolean hasAttackerHeroLevel();
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    int getAttackerHeroLevel();

    /**
     * optional uint32 target_hero_level = 44;
     */
    boolean hasTargetHeroLevel();
    /**
     * optional uint32 target_hero_level = 44;
     */
    int getTargetHeroLevel();

    /**
     * optional uint32 xpm = 45;
     */
    boolean hasXpm();
    /**
     * optional uint32 xpm = 45;
     */
    int getXpm();

    /**
     * optional uint32 gpm = 46;
     */
    boolean hasGpm();
    /**
     * optional uint32 gpm = 46;
     */
    int getGpm();

    /**
     * optional uint32 event_location = 47;
     */
    boolean hasEventLocation();
    /**
     * optional uint32 event_location = 47;
     */
    int getEventLocation();

    /**
     * optional bool target_is_self = 48;
     */
    boolean hasTargetIsSelf();
    /**
     * optional bool target_is_self = 48;
     */
    boolean getTargetIsSelf();

    /**
     * optional uint32 damage_type = 49;
     */
    boolean hasDamageType();
    /**
     * optional uint32 damage_type = 49;
     */
    int getDamageType();

    /**
     * optional bool invisibility_modifier = 50;
     */
    boolean hasInvisibilityModifier();
    /**
     * optional bool invisibility_modifier = 50;
     */
    boolean getInvisibilityModifier();

    /**
     * optional uint32 damage_category = 51;
     */
    boolean hasDamageCategory();
    /**
     * optional uint32 damage_category = 51;
     */
    int getDamageCategory();

    /**
     * optional uint32 networth = 52;
     */
    boolean hasNetworth();
    /**
     * optional uint32 networth = 52;
     */
    int getNetworth();

    /**
     * optional uint32 building_type = 53;
     */
    boolean hasBuildingType();
    /**
     * optional uint32 building_type = 53;
     */
    int getBuildingType();

    /**
     * optional float modifier_elapsed_duration = 54;
     */
    boolean hasModifierElapsedDuration();
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    float getModifierElapsedDuration();

    /**
     * optional bool silence_modifier = 55;
     */
    boolean hasSilenceModifier();
    /**
     * optional bool silence_modifier = 55;
     */
    boolean getSilenceModifier();

    /**
     * optional bool heal_from_lifesteal = 56;
     */
    boolean hasHealFromLifesteal();
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    boolean getHealFromLifesteal();

    /**
     * optional bool modifier_purged = 57;
     */
    boolean hasModifierPurged();
    /**
     * optional bool modifier_purged = 57;
     */
    boolean getModifierPurged();

    /**
     * optional bool spell_evaded = 58;
     */
    boolean hasSpellEvaded();
    /**
     * optional bool spell_evaded = 58;
     */
    boolean getSpellEvaded();

    /**
     * optional bool motion_controller_modifier = 59;
     */
    boolean hasMotionControllerModifier();
    /**
     * optional bool motion_controller_modifier = 59;
     */
    boolean getMotionControllerModifier();

    /**
     * optional bool long_range_kill = 60;
     */
    boolean hasLongRangeKill();
    /**
     * optional bool long_range_kill = 60;
     */
    boolean getLongRangeKill();

    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    boolean hasModifierPurgeAbility();
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    int getModifierPurgeAbility();

    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    boolean hasModifierPurgeNpc();
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    int getModifierPurgeNpc();

    /**
     * optional bool root_modifier = 63;
     */
    boolean hasRootModifier();
    /**
     * optional bool root_modifier = 63;
     */
    boolean getRootModifier();

    /**
     * optional uint32 total_unit_death_count = 64;
     */
    boolean hasTotalUnitDeathCount();
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    int getTotalUnitDeathCount();

    /**
     * optional bool aura_modifier = 65;
     */
    boolean hasAuraModifier();
    /**
     * optional bool aura_modifier = 65;
     */
    boolean getAuraModifier();

    /**
     * optional bool armor_debuff_modifier = 66;
     */
    boolean hasArmorDebuffModifier();
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    boolean getArmorDebuffModifier();

    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    boolean hasNoPhysicalDamageModifier();
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    boolean getNoPhysicalDamageModifier();

    /**
     * optional uint32 modifier_ability = 68;
     */
    boolean hasModifierAbility();
    /**
     * optional uint32 modifier_ability = 68;
     */
    int getModifierAbility();

    /**
     * optional bool modifier_hidden = 69;
     */
    boolean hasModifierHidden();
    /**
     * optional bool modifier_hidden = 69;
     */
    boolean getModifierHidden();

    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    boolean hasInflictorIsStolenAbility();
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    boolean getInflictorIsStolenAbility();

    /**
     * optional uint32 kill_eater_event = 71;
     */
    boolean hasKillEaterEvent();
    /**
     * optional uint32 kill_eater_event = 71;
     */
    int getKillEaterEvent();

    /**
     * optional uint32 unit_status_label = 72;
     */
    boolean hasUnitStatusLabel();
    /**
     * optional uint32 unit_status_label = 72;
     */
    int getUnitStatusLabel();

    /**
     * optional bool spell_generated_attack = 73;
     */
    boolean hasSpellGeneratedAttack();
    /**
     * optional bool spell_generated_attack = 73;
     */
    boolean getSpellGeneratedAttack();

    /**
     * optional bool at_night_time = 74;
     */
    boolean hasAtNightTime();
    /**
     * optional bool at_night_time = 74;
     */
    boolean getAtNightTime();

    /**
     * optional bool attacker_has_scepter = 75;
     */
    boolean hasAttackerHasScepter();
    /**
     * optional bool attacker_has_scepter = 75;
     */
    boolean getAttackerHasScepter();

    /**
     * optional uint32 neutral_camp_team = 76;
     */
    boolean hasNeutralCampTeam();
    /**
     * optional uint32 neutral_camp_team = 76;
     */
    int getNeutralCampTeam();

    /**
     * optional float regenerated_health = 77;
     */
    boolean hasRegeneratedHealth();
    /**
     * optional float regenerated_health = 77;
     */
    float getRegeneratedHealth();

    /**
     * optional bool will_reincarnate = 78;
     */
    boolean hasWillReincarnate();
    /**
     * optional bool will_reincarnate = 78;
     */
    boolean getWillReincarnate();

    /**
     * optional bool uses_charges = 79;
     */
    boolean hasUsesCharges();
    /**
     * optional bool uses_charges = 79;
     */
    boolean getUsesCharges();
  }
  /**
   * Protobuf type {@code CMsgDOTACombatLogEntry}
   */
  public static final class CMsgDOTACombatLogEntry extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CMsgDOTACombatLogEntry)
      CMsgDOTACombatLogEntryOrBuilder {
    // Use CMsgDOTACombatLogEntry.newBuilder() to construct.
    private CMsgDOTACombatLogEntry(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CMsgDOTACombatLogEntry(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CMsgDOTACombatLogEntry defaultInstance;
    public static CMsgDOTACombatLogEntry getDefaultInstance() {
      return defaultInstance;
    }

    public CMsgDOTACombatLogEntry getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CMsgDOTACombatLogEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      int mutable_bitField2_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              int rawValue = input.readEnum();
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES value = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES.valueOf(rawValue);
              if (value == null) {
                unknownFields.mergeVarintField(1, rawValue);
              } else {
                bitField0_ |= 0x00000001;
                type_ = value;
              }
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              targetName_ = input.readUInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              targetSourceName_ = input.readUInt32();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              attackerName_ = input.readUInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              damageSourceName_ = input.readUInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              inflictorName_ = input.readUInt32();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              isAttackerIllusion_ = input.readBool();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              isAttackerHero_ = input.readBool();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              isTargetIllusion_ = input.readBool();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              isTargetHero_ = input.readBool();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              isVisibleRadiant_ = input.readBool();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000800;
              isVisibleDire_ = input.readBool();
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              value_ = input.readUInt32();
              break;
            }
            case 112: {
              bitField0_ |= 0x00002000;
              health_ = input.readInt32();
              break;
            }
            case 125: {
              bitField0_ |= 0x00004000;
              timestamp_ = input.readFloat();
              break;
            }
            case 133: {
              bitField0_ |= 0x00008000;
              stunDuration_ = input.readFloat();
              break;
            }
            case 141: {
              bitField0_ |= 0x00010000;
              slowDuration_ = input.readFloat();
              break;
            }
            case 144: {
              bitField0_ |= 0x00020000;
              isAbilityToggleOn_ = input.readBool();
              break;
            }
            case 152: {
              bitField0_ |= 0x00040000;
              isAbilityToggleOff_ = input.readBool();
              break;
            }
            case 160: {
              bitField0_ |= 0x00080000;
              abilityLevel_ = input.readUInt32();
              break;
            }
            case 173: {
              bitField0_ |= 0x00100000;
              locationX_ = input.readFloat();
              break;
            }
            case 181: {
              bitField0_ |= 0x00200000;
              locationY_ = input.readFloat();
              break;
            }
            case 184: {
              bitField0_ |= 0x00400000;
              goldReason_ = input.readUInt32();
              break;
            }
            case 197: {
              bitField0_ |= 0x00800000;
              timestampRaw_ = input.readFloat();
              break;
            }
            case 205: {
              bitField0_ |= 0x01000000;
              modifierDuration_ = input.readFloat();
              break;
            }
            case 208: {
              bitField0_ |= 0x02000000;
              xpReason_ = input.readUInt32();
              break;
            }
            case 216: {
              bitField0_ |= 0x04000000;
              lastHits_ = input.readUInt32();
              break;
            }
            case 224: {
              bitField0_ |= 0x08000000;
              attackerTeam_ = input.readUInt32();
              break;
            }
            case 232: {
              bitField0_ |= 0x10000000;
              targetTeam_ = input.readUInt32();
              break;
            }
            case 240: {
              bitField0_ |= 0x20000000;
              obsWardsPlaced_ = input.readUInt32();
              break;
            }
            case 248: {
              bitField0_ |= 0x40000000;
              assistPlayer0_ = input.readUInt32();
              break;
            }
            case 256: {
              bitField0_ |= 0x80000000;
              assistPlayer1_ = input.readUInt32();
              break;
            }
            case 264: {
              bitField1_ |= 0x00000001;
              assistPlayer2_ = input.readUInt32();
              break;
            }
            case 272: {
              bitField1_ |= 0x00000002;
              assistPlayer3_ = input.readUInt32();
              break;
            }
            case 280: {
              bitField1_ |= 0x00000004;
              stackCount_ = input.readUInt32();
              break;
            }
            case 288: {
              bitField1_ |= 0x00000008;
              hiddenModifier_ = input.readBool();
              break;
            }
            case 296: {
              bitField1_ |= 0x00000010;
              isTargetBuilding_ = input.readBool();
              break;
            }
            case 304: {
              bitField1_ |= 0x00000020;
              neutralCampType_ = input.readUInt32();
              break;
            }
            case 312: {
              bitField1_ |= 0x00000040;
              runeType_ = input.readUInt32();
              break;
            }
            case 320: {
              if (!((mutable_bitField1_ & 0x00000080) == 0x00000080)) {
                assistPlayers_ = new java.util.ArrayList();
                mutable_bitField1_ |= 0x00000080;
              }
              assistPlayers_.add(input.readInt32());
              break;
            }
            case 322: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField1_ & 0x00000080) == 0x00000080) && input.getBytesUntilLimit() > 0) {
                assistPlayers_ = new java.util.ArrayList();
                mutable_bitField1_ |= 0x00000080;
              }
              while (input.getBytesUntilLimit() > 0) {
                assistPlayers_.add(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 328: {
              bitField1_ |= 0x00000080;
              isHealSave_ = input.readBool();
              break;
            }
            case 336: {
              bitField1_ |= 0x00000100;
              isUltimateAbility_ = input.readBool();
              break;
            }
            case 344: {
              bitField1_ |= 0x00000200;
              attackerHeroLevel_ = input.readUInt32();
              break;
            }
            case 352: {
              bitField1_ |= 0x00000400;
              targetHeroLevel_ = input.readUInt32();
              break;
            }
            case 360: {
              bitField1_ |= 0x00000800;
              xpm_ = input.readUInt32();
              break;
            }
            case 368: {
              bitField1_ |= 0x00001000;
              gpm_ = input.readUInt32();
              break;
            }
            case 376: {
              bitField1_ |= 0x00002000;
              eventLocation_ = input.readUInt32();
              break;
            }
            case 384: {
              bitField1_ |= 0x00004000;
              targetIsSelf_ = input.readBool();
              break;
            }
            case 392: {
              bitField1_ |= 0x00008000;
              damageType_ = input.readUInt32();
              break;
            }
            case 400: {
              bitField1_ |= 0x00010000;
              invisibilityModifier_ = input.readBool();
              break;
            }
            case 408: {
              bitField1_ |= 0x00020000;
              damageCategory_ = input.readUInt32();
              break;
            }
            case 416: {
              bitField1_ |= 0x00040000;
              networth_ = input.readUInt32();
              break;
            }
            case 424: {
              bitField1_ |= 0x00080000;
              buildingType_ = input.readUInt32();
              break;
            }
            case 437: {
              bitField1_ |= 0x00100000;
              modifierElapsedDuration_ = input.readFloat();
              break;
            }
            case 440: {
              bitField1_ |= 0x00200000;
              silenceModifier_ = input.readBool();
              break;
            }
            case 448: {
              bitField1_ |= 0x00400000;
              healFromLifesteal_ = input.readBool();
              break;
            }
            case 456: {
              bitField1_ |= 0x00800000;
              modifierPurged_ = input.readBool();
              break;
            }
            case 464: {
              bitField1_ |= 0x01000000;
              spellEvaded_ = input.readBool();
              break;
            }
            case 472: {
              bitField1_ |= 0x02000000;
              motionControllerModifier_ = input.readBool();
              break;
            }
            case 480: {
              bitField1_ |= 0x04000000;
              longRangeKill_ = input.readBool();
              break;
            }
            case 488: {
              bitField1_ |= 0x08000000;
              modifierPurgeAbility_ = input.readUInt32();
              break;
            }
            case 496: {
              bitField1_ |= 0x10000000;
              modifierPurgeNpc_ = input.readUInt32();
              break;
            }
            case 504: {
              bitField1_ |= 0x20000000;
              rootModifier_ = input.readBool();
              break;
            }
            case 512: {
              bitField1_ |= 0x40000000;
              totalUnitDeathCount_ = input.readUInt32();
              break;
            }
            case 520: {
              bitField1_ |= 0x80000000;
              auraModifier_ = input.readBool();
              break;
            }
            case 528: {
              bitField2_ |= 0x00000001;
              armorDebuffModifier_ = input.readBool();
              break;
            }
            case 536: {
              bitField2_ |= 0x00000002;
              noPhysicalDamageModifier_ = input.readBool();
              break;
            }
            case 544: {
              bitField2_ |= 0x00000004;
              modifierAbility_ = input.readUInt32();
              break;
            }
            case 552: {
              bitField2_ |= 0x00000008;
              modifierHidden_ = input.readBool();
              break;
            }
            case 560: {
              bitField2_ |= 0x00000010;
              inflictorIsStolenAbility_ = input.readBool();
              break;
            }
            case 568: {
              bitField2_ |= 0x00000020;
              killEaterEvent_ = input.readUInt32();
              break;
            }
            case 576: {
              bitField2_ |= 0x00000040;
              unitStatusLabel_ = input.readUInt32();
              break;
            }
            case 584: {
              bitField2_ |= 0x00000080;
              spellGeneratedAttack_ = input.readBool();
              break;
            }
            case 592: {
              bitField2_ |= 0x00000100;
              atNightTime_ = input.readBool();
              break;
            }
            case 600: {
              bitField2_ |= 0x00000200;
              attackerHasScepter_ = input.readBool();
              break;
            }
            case 608: {
              bitField2_ |= 0x00000400;
              neutralCampTeam_ = input.readUInt32();
              break;
            }
            case 621: {
              bitField2_ |= 0x00000800;
              regeneratedHealth_ = input.readFloat();
              break;
            }
            case 624: {
              bitField2_ |= 0x00001000;
              willReincarnate_ = input.readBool();
              break;
            }
            case 632: {
              bitField2_ |= 0x00002000;
              usesCharges_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = java.util.Collections.unmodifiableList(assistPlayers_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CMsgDOTACombatLogEntry parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CMsgDOTACombatLogEntry(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    private int bitField1_;
    private int bitField2_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES type_;
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
     */
    public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES getType() {
      return type_;
    }

    public static final int TARGET_NAME_FIELD_NUMBER = 2;
    private int targetName_;
    /**
     * optional uint32 target_name = 2;
     */
    public boolean hasTargetName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 target_name = 2;
     */
    public int getTargetName() {
      return targetName_;
    }

    public static final int TARGET_SOURCE_NAME_FIELD_NUMBER = 3;
    private int targetSourceName_;
    /**
     * optional uint32 target_source_name = 3;
     */
    public boolean hasTargetSourceName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 target_source_name = 3;
     */
    public int getTargetSourceName() {
      return targetSourceName_;
    }

    public static final int ATTACKER_NAME_FIELD_NUMBER = 4;
    private int attackerName_;
    /**
     * optional uint32 attacker_name = 4;
     */
    public boolean hasAttackerName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional uint32 attacker_name = 4;
     */
    public int getAttackerName() {
      return attackerName_;
    }

    public static final int DAMAGE_SOURCE_NAME_FIELD_NUMBER = 5;
    private int damageSourceName_;
    /**
     * optional uint32 damage_source_name = 5;
     */
    public boolean hasDamageSourceName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional uint32 damage_source_name = 5;
     */
    public int getDamageSourceName() {
      return damageSourceName_;
    }

    public static final int INFLICTOR_NAME_FIELD_NUMBER = 6;
    private int inflictorName_;
    /**
     * optional uint32 inflictor_name = 6;
     */
    public boolean hasInflictorName() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 inflictor_name = 6;
     */
    public int getInflictorName() {
      return inflictorName_;
    }

    public static final int IS_ATTACKER_ILLUSION_FIELD_NUMBER = 7;
    private boolean isAttackerIllusion_;
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean hasIsAttackerIllusion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional bool is_attacker_illusion = 7;
     */
    public boolean getIsAttackerIllusion() {
      return isAttackerIllusion_;
    }

    public static final int IS_ATTACKER_HERO_FIELD_NUMBER = 8;
    private boolean isAttackerHero_;
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean hasIsAttackerHero() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool is_attacker_hero = 8;
     */
    public boolean getIsAttackerHero() {
      return isAttackerHero_;
    }

    public static final int IS_TARGET_ILLUSION_FIELD_NUMBER = 9;
    private boolean isTargetIllusion_;
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean hasIsTargetIllusion() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool is_target_illusion = 9;
     */
    public boolean getIsTargetIllusion() {
      return isTargetIllusion_;
    }

    public static final int IS_TARGET_HERO_FIELD_NUMBER = 10;
    private boolean isTargetHero_;
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean hasIsTargetHero() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool is_target_hero = 10;
     */
    public boolean getIsTargetHero() {
      return isTargetHero_;
    }

    public static final int IS_VISIBLE_RADIANT_FIELD_NUMBER = 11;
    private boolean isVisibleRadiant_;
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean hasIsVisibleRadiant() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional bool is_visible_radiant = 11;
     */
    public boolean getIsVisibleRadiant() {
      return isVisibleRadiant_;
    }

    public static final int IS_VISIBLE_DIRE_FIELD_NUMBER = 12;
    private boolean isVisibleDire_;
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean hasIsVisibleDire() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional bool is_visible_dire = 12;
     */
    public boolean getIsVisibleDire() {
      return isVisibleDire_;
    }

    public static final int VALUE_FIELD_NUMBER = 13;
    private int value_;
    /**
     * optional uint32 value = 13;
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 value = 13;
     */
    public int getValue() {
      return value_;
    }

    public static final int HEALTH_FIELD_NUMBER = 14;
    private int health_;
    /**
     * optional int32 health = 14;
     */
    public boolean hasHealth() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional int32 health = 14;
     */
    public int getHealth() {
      return health_;
    }

    public static final int TIMESTAMP_FIELD_NUMBER = 15;
    private float timestamp_;
    /**
     * optional float timestamp = 15;
     */
    public boolean hasTimestamp() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional float timestamp = 15;
     */
    public float getTimestamp() {
      return timestamp_;
    }

    public static final int STUN_DURATION_FIELD_NUMBER = 16;
    private float stunDuration_;
    /**
     * optional float stun_duration = 16;
     */
    public boolean hasStunDuration() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional float stun_duration = 16;
     */
    public float getStunDuration() {
      return stunDuration_;
    }

    public static final int SLOW_DURATION_FIELD_NUMBER = 17;
    private float slowDuration_;
    /**
     * optional float slow_duration = 17;
     */
    public boolean hasSlowDuration() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional float slow_duration = 17;
     */
    public float getSlowDuration() {
      return slowDuration_;
    }

    public static final int IS_ABILITY_TOGGLE_ON_FIELD_NUMBER = 18;
    private boolean isAbilityToggleOn_;
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean hasIsAbilityToggleOn() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional bool is_ability_toggle_on = 18;
     */
    public boolean getIsAbilityToggleOn() {
      return isAbilityToggleOn_;
    }

    public static final int IS_ABILITY_TOGGLE_OFF_FIELD_NUMBER = 19;
    private boolean isAbilityToggleOff_;
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean hasIsAbilityToggleOff() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional bool is_ability_toggle_off = 19;
     */
    public boolean getIsAbilityToggleOff() {
      return isAbilityToggleOff_;
    }

    public static final int ABILITY_LEVEL_FIELD_NUMBER = 20;
    private int abilityLevel_;
    /**
     * optional uint32 ability_level = 20;
     */
    public boolean hasAbilityLevel() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional uint32 ability_level = 20;
     */
    public int getAbilityLevel() {
      return abilityLevel_;
    }

    public static final int LOCATION_X_FIELD_NUMBER = 21;
    private float locationX_;
    /**
     * optional float location_x = 21;
     */
    public boolean hasLocationX() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional float location_x = 21;
     */
    public float getLocationX() {
      return locationX_;
    }

    public static final int LOCATION_Y_FIELD_NUMBER = 22;
    private float locationY_;
    /**
     * optional float location_y = 22;
     */
    public boolean hasLocationY() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional float location_y = 22;
     */
    public float getLocationY() {
      return locationY_;
    }

    public static final int GOLD_REASON_FIELD_NUMBER = 23;
    private int goldReason_;
    /**
     * optional uint32 gold_reason = 23;
     */
    public boolean hasGoldReason() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional uint32 gold_reason = 23;
     */
    public int getGoldReason() {
      return goldReason_;
    }

    public static final int TIMESTAMP_RAW_FIELD_NUMBER = 24;
    private float timestampRaw_;
    /**
     * optional float timestamp_raw = 24;
     */
    public boolean hasTimestampRaw() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional float timestamp_raw = 24;
     */
    public float getTimestampRaw() {
      return timestampRaw_;
    }

    public static final int MODIFIER_DURATION_FIELD_NUMBER = 25;
    private float modifierDuration_;
    /**
     * optional float modifier_duration = 25;
     */
    public boolean hasModifierDuration() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    /**
     * optional float modifier_duration = 25;
     */
    public float getModifierDuration() {
      return modifierDuration_;
    }

    public static final int XP_REASON_FIELD_NUMBER = 26;
    private int xpReason_;
    /**
     * optional uint32 xp_reason = 26;
     */
    public boolean hasXpReason() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    /**
     * optional uint32 xp_reason = 26;
     */
    public int getXpReason() {
      return xpReason_;
    }

    public static final int LAST_HITS_FIELD_NUMBER = 27;
    private int lastHits_;
    /**
     * optional uint32 last_hits = 27;
     */
    public boolean hasLastHits() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    /**
     * optional uint32 last_hits = 27;
     */
    public int getLastHits() {
      return lastHits_;
    }

    public static final int ATTACKER_TEAM_FIELD_NUMBER = 28;
    private int attackerTeam_;
    /**
     * optional uint32 attacker_team = 28;
     */
    public boolean hasAttackerTeam() {
      return ((bitField0_ & 0x08000000) == 0x08000000);
    }
    /**
     * optional uint32 attacker_team = 28;
     */
    public int getAttackerTeam() {
      return attackerTeam_;
    }

    public static final int TARGET_TEAM_FIELD_NUMBER = 29;
    private int targetTeam_;
    /**
     * optional uint32 target_team = 29;
     */
    public boolean hasTargetTeam() {
      return ((bitField0_ & 0x10000000) == 0x10000000);
    }
    /**
     * optional uint32 target_team = 29;
     */
    public int getTargetTeam() {
      return targetTeam_;
    }

    public static final int OBS_WARDS_PLACED_FIELD_NUMBER = 30;
    private int obsWardsPlaced_;
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    public boolean hasObsWardsPlaced() {
      return ((bitField0_ & 0x20000000) == 0x20000000);
    }
    /**
     * optional uint32 obs_wards_placed = 30;
     */
    public int getObsWardsPlaced() {
      return obsWardsPlaced_;
    }

    public static final int ASSIST_PLAYER0_FIELD_NUMBER = 31;
    private int assistPlayer0_;
    /**
     * optional uint32 assist_player0 = 31;
     */
    public boolean hasAssistPlayer0() {
      return ((bitField0_ & 0x40000000) == 0x40000000);
    }
    /**
     * optional uint32 assist_player0 = 31;
     */
    public int getAssistPlayer0() {
      return assistPlayer0_;
    }

    public static final int ASSIST_PLAYER1_FIELD_NUMBER = 32;
    private int assistPlayer1_;
    /**
     * optional uint32 assist_player1 = 32;
     */
    public boolean hasAssistPlayer1() {
      return ((bitField0_ & 0x80000000) == 0x80000000);
    }
    /**
     * optional uint32 assist_player1 = 32;
     */
    public int getAssistPlayer1() {
      return assistPlayer1_;
    }

    public static final int ASSIST_PLAYER2_FIELD_NUMBER = 33;
    private int assistPlayer2_;
    /**
     * optional uint32 assist_player2 = 33;
     */
    public boolean hasAssistPlayer2() {
      return ((bitField1_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional uint32 assist_player2 = 33;
     */
    public int getAssistPlayer2() {
      return assistPlayer2_;
    }

    public static final int ASSIST_PLAYER3_FIELD_NUMBER = 34;
    private int assistPlayer3_;
    /**
     * optional uint32 assist_player3 = 34;
     */
    public boolean hasAssistPlayer3() {
      return ((bitField1_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional uint32 assist_player3 = 34;
     */
    public int getAssistPlayer3() {
      return assistPlayer3_;
    }

    public static final int STACK_COUNT_FIELD_NUMBER = 35;
    private int stackCount_;
    /**
     * optional uint32 stack_count = 35;
     */
    public boolean hasStackCount() {
      return ((bitField1_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 stack_count = 35;
     */
    public int getStackCount() {
      return stackCount_;
    }

    public static final int HIDDEN_MODIFIER_FIELD_NUMBER = 36;
    private boolean hiddenModifier_;
    /**
     * optional bool hidden_modifier = 36;
     */
    public boolean hasHiddenModifier() {
      return ((bitField1_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool hidden_modifier = 36;
     */
    public boolean getHiddenModifier() {
      return hiddenModifier_;
    }

    public static final int IS_TARGET_BUILDING_FIELD_NUMBER = 37;
    private boolean isTargetBuilding_;
    /**
     * optional bool is_target_building = 37;
     */
    public boolean hasIsTargetBuilding() {
      return ((bitField1_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool is_target_building = 37;
     */
    public boolean getIsTargetBuilding() {
      return isTargetBuilding_;
    }

    public static final int NEUTRAL_CAMP_TYPE_FIELD_NUMBER = 38;
    private int neutralCampType_;
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    public boolean hasNeutralCampType() {
      return ((bitField1_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 neutral_camp_type = 38;
     */
    public int getNeutralCampType() {
      return neutralCampType_;
    }

    public static final int RUNE_TYPE_FIELD_NUMBER = 39;
    private int runeType_;
    /**
     * optional uint32 rune_type = 39;
     */
    public boolean hasRuneType() {
      return ((bitField1_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 rune_type = 39;
     */
    public int getRuneType() {
      return runeType_;
    }

    public static final int ASSIST_PLAYERS_FIELD_NUMBER = 40;
    private java.util.List assistPlayers_;
    /**
     * repeated int32 assist_players = 40;
     */
    public java.util.List
        getAssistPlayersList() {
      return assistPlayers_;
    }
    /**
     * repeated int32 assist_players = 40;
     */
    public int getAssistPlayersCount() {
      return assistPlayers_.size();
    }
    /**
     * repeated int32 assist_players = 40;
     */
    public int getAssistPlayers(int index) {
      return assistPlayers_.get(index);
    }

    public static final int IS_HEAL_SAVE_FIELD_NUMBER = 41;
    private boolean isHealSave_;
    /**
     * optional bool is_heal_save = 41;
     */
    public boolean hasIsHealSave() {
      return ((bitField1_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool is_heal_save = 41;
     */
    public boolean getIsHealSave() {
      return isHealSave_;
    }

    public static final int IS_ULTIMATE_ABILITY_FIELD_NUMBER = 42;
    private boolean isUltimateAbility_;
    /**
     * optional bool is_ultimate_ability = 42;
     */
    public boolean hasIsUltimateAbility() {
      return ((bitField1_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool is_ultimate_ability = 42;
     */
    public boolean getIsUltimateAbility() {
      return isUltimateAbility_;
    }

    public static final int ATTACKER_HERO_LEVEL_FIELD_NUMBER = 43;
    private int attackerHeroLevel_;
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    public boolean hasAttackerHeroLevel() {
      return ((bitField1_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional uint32 attacker_hero_level = 43;
     */
    public int getAttackerHeroLevel() {
      return attackerHeroLevel_;
    }

    public static final int TARGET_HERO_LEVEL_FIELD_NUMBER = 44;
    private int targetHeroLevel_;
    /**
     * optional uint32 target_hero_level = 44;
     */
    public boolean hasTargetHeroLevel() {
      return ((bitField1_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 target_hero_level = 44;
     */
    public int getTargetHeroLevel() {
      return targetHeroLevel_;
    }

    public static final int XPM_FIELD_NUMBER = 45;
    private int xpm_;
    /**
     * optional uint32 xpm = 45;
     */
    public boolean hasXpm() {
      return ((bitField1_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional uint32 xpm = 45;
     */
    public int getXpm() {
      return xpm_;
    }

    public static final int GPM_FIELD_NUMBER = 46;
    private int gpm_;
    /**
     * optional uint32 gpm = 46;
     */
    public boolean hasGpm() {
      return ((bitField1_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional uint32 gpm = 46;
     */
    public int getGpm() {
      return gpm_;
    }

    public static final int EVENT_LOCATION_FIELD_NUMBER = 47;
    private int eventLocation_;
    /**
     * optional uint32 event_location = 47;
     */
    public boolean hasEventLocation() {
      return ((bitField1_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional uint32 event_location = 47;
     */
    public int getEventLocation() {
      return eventLocation_;
    }

    public static final int TARGET_IS_SELF_FIELD_NUMBER = 48;
    private boolean targetIsSelf_;
    /**
     * optional bool target_is_self = 48;
     */
    public boolean hasTargetIsSelf() {
      return ((bitField1_ & 0x00004000) == 0x00004000);
    }
    /**
     * optional bool target_is_self = 48;
     */
    public boolean getTargetIsSelf() {
      return targetIsSelf_;
    }

    public static final int DAMAGE_TYPE_FIELD_NUMBER = 49;
    private int damageType_;
    /**
     * optional uint32 damage_type = 49;
     */
    public boolean hasDamageType() {
      return ((bitField1_ & 0x00008000) == 0x00008000);
    }
    /**
     * optional uint32 damage_type = 49;
     */
    public int getDamageType() {
      return damageType_;
    }

    public static final int INVISIBILITY_MODIFIER_FIELD_NUMBER = 50;
    private boolean invisibilityModifier_;
    /**
     * optional bool invisibility_modifier = 50;
     */
    public boolean hasInvisibilityModifier() {
      return ((bitField1_ & 0x00010000) == 0x00010000);
    }
    /**
     * optional bool invisibility_modifier = 50;
     */
    public boolean getInvisibilityModifier() {
      return invisibilityModifier_;
    }

    public static final int DAMAGE_CATEGORY_FIELD_NUMBER = 51;
    private int damageCategory_;
    /**
     * optional uint32 damage_category = 51;
     */
    public boolean hasDamageCategory() {
      return ((bitField1_ & 0x00020000) == 0x00020000);
    }
    /**
     * optional uint32 damage_category = 51;
     */
    public int getDamageCategory() {
      return damageCategory_;
    }

    public static final int NETWORTH_FIELD_NUMBER = 52;
    private int networth_;
    /**
     * optional uint32 networth = 52;
     */
    public boolean hasNetworth() {
      return ((bitField1_ & 0x00040000) == 0x00040000);
    }
    /**
     * optional uint32 networth = 52;
     */
    public int getNetworth() {
      return networth_;
    }

    public static final int BUILDING_TYPE_FIELD_NUMBER = 53;
    private int buildingType_;
    /**
     * optional uint32 building_type = 53;
     */
    public boolean hasBuildingType() {
      return ((bitField1_ & 0x00080000) == 0x00080000);
    }
    /**
     * optional uint32 building_type = 53;
     */
    public int getBuildingType() {
      return buildingType_;
    }

    public static final int MODIFIER_ELAPSED_DURATION_FIELD_NUMBER = 54;
    private float modifierElapsedDuration_;
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    public boolean hasModifierElapsedDuration() {
      return ((bitField1_ & 0x00100000) == 0x00100000);
    }
    /**
     * optional float modifier_elapsed_duration = 54;
     */
    public float getModifierElapsedDuration() {
      return modifierElapsedDuration_;
    }

    public static final int SILENCE_MODIFIER_FIELD_NUMBER = 55;
    private boolean silenceModifier_;
    /**
     * optional bool silence_modifier = 55;
     */
    public boolean hasSilenceModifier() {
      return ((bitField1_ & 0x00200000) == 0x00200000);
    }
    /**
     * optional bool silence_modifier = 55;
     */
    public boolean getSilenceModifier() {
      return silenceModifier_;
    }

    public static final int HEAL_FROM_LIFESTEAL_FIELD_NUMBER = 56;
    private boolean healFromLifesteal_;
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    public boolean hasHealFromLifesteal() {
      return ((bitField1_ & 0x00400000) == 0x00400000);
    }
    /**
     * optional bool heal_from_lifesteal = 56;
     */
    public boolean getHealFromLifesteal() {
      return healFromLifesteal_;
    }

    public static final int MODIFIER_PURGED_FIELD_NUMBER = 57;
    private boolean modifierPurged_;
    /**
     * optional bool modifier_purged = 57;
     */
    public boolean hasModifierPurged() {
      return ((bitField1_ & 0x00800000) == 0x00800000);
    }
    /**
     * optional bool modifier_purged = 57;
     */
    public boolean getModifierPurged() {
      return modifierPurged_;
    }

    public static final int SPELL_EVADED_FIELD_NUMBER = 58;
    private boolean spellEvaded_;
    /**
     * optional bool spell_evaded = 58;
     */
    public boolean hasSpellEvaded() {
      return ((bitField1_ & 0x01000000) == 0x01000000);
    }
    /**
     * optional bool spell_evaded = 58;
     */
    public boolean getSpellEvaded() {
      return spellEvaded_;
    }

    public static final int MOTION_CONTROLLER_MODIFIER_FIELD_NUMBER = 59;
    private boolean motionControllerModifier_;
    /**
     * optional bool motion_controller_modifier = 59;
     */
    public boolean hasMotionControllerModifier() {
      return ((bitField1_ & 0x02000000) == 0x02000000);
    }
    /**
     * optional bool motion_controller_modifier = 59;
     */
    public boolean getMotionControllerModifier() {
      return motionControllerModifier_;
    }

    public static final int LONG_RANGE_KILL_FIELD_NUMBER = 60;
    private boolean longRangeKill_;
    /**
     * optional bool long_range_kill = 60;
     */
    public boolean hasLongRangeKill() {
      return ((bitField1_ & 0x04000000) == 0x04000000);
    }
    /**
     * optional bool long_range_kill = 60;
     */
    public boolean getLongRangeKill() {
      return longRangeKill_;
    }

    public static final int MODIFIER_PURGE_ABILITY_FIELD_NUMBER = 61;
    private int modifierPurgeAbility_;
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    public boolean hasModifierPurgeAbility() {
      return ((bitField1_ & 0x08000000) == 0x08000000);
    }
    /**
     * optional uint32 modifier_purge_ability = 61;
     */
    public int getModifierPurgeAbility() {
      return modifierPurgeAbility_;
    }

    public static final int MODIFIER_PURGE_NPC_FIELD_NUMBER = 62;
    private int modifierPurgeNpc_;
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    public boolean hasModifierPurgeNpc() {
      return ((bitField1_ & 0x10000000) == 0x10000000);
    }
    /**
     * optional uint32 modifier_purge_npc = 62;
     */
    public int getModifierPurgeNpc() {
      return modifierPurgeNpc_;
    }

    public static final int ROOT_MODIFIER_FIELD_NUMBER = 63;
    private boolean rootModifier_;
    /**
     * optional bool root_modifier = 63;
     */
    public boolean hasRootModifier() {
      return ((bitField1_ & 0x20000000) == 0x20000000);
    }
    /**
     * optional bool root_modifier = 63;
     */
    public boolean getRootModifier() {
      return rootModifier_;
    }

    public static final int TOTAL_UNIT_DEATH_COUNT_FIELD_NUMBER = 64;
    private int totalUnitDeathCount_;
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    public boolean hasTotalUnitDeathCount() {
      return ((bitField1_ & 0x40000000) == 0x40000000);
    }
    /**
     * optional uint32 total_unit_death_count = 64;
     */
    public int getTotalUnitDeathCount() {
      return totalUnitDeathCount_;
    }

    public static final int AURA_MODIFIER_FIELD_NUMBER = 65;
    private boolean auraModifier_;
    /**
     * optional bool aura_modifier = 65;
     */
    public boolean hasAuraModifier() {
      return ((bitField1_ & 0x80000000) == 0x80000000);
    }
    /**
     * optional bool aura_modifier = 65;
     */
    public boolean getAuraModifier() {
      return auraModifier_;
    }

    public static final int ARMOR_DEBUFF_MODIFIER_FIELD_NUMBER = 66;
    private boolean armorDebuffModifier_;
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    public boolean hasArmorDebuffModifier() {
      return ((bitField2_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bool armor_debuff_modifier = 66;
     */
    public boolean getArmorDebuffModifier() {
      return armorDebuffModifier_;
    }

    public static final int NO_PHYSICAL_DAMAGE_MODIFIER_FIELD_NUMBER = 67;
    private boolean noPhysicalDamageModifier_;
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    public boolean hasNoPhysicalDamageModifier() {
      return ((bitField2_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bool no_physical_damage_modifier = 67;
     */
    public boolean getNoPhysicalDamageModifier() {
      return noPhysicalDamageModifier_;
    }

    public static final int MODIFIER_ABILITY_FIELD_NUMBER = 68;
    private int modifierAbility_;
    /**
     * optional uint32 modifier_ability = 68;
     */
    public boolean hasModifierAbility() {
      return ((bitField2_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional uint32 modifier_ability = 68;
     */
    public int getModifierAbility() {
      return modifierAbility_;
    }

    public static final int MODIFIER_HIDDEN_FIELD_NUMBER = 69;
    private boolean modifierHidden_;
    /**
     * optional bool modifier_hidden = 69;
     */
    public boolean hasModifierHidden() {
      return ((bitField2_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional bool modifier_hidden = 69;
     */
    public boolean getModifierHidden() {
      return modifierHidden_;
    }

    public static final int INFLICTOR_IS_STOLEN_ABILITY_FIELD_NUMBER = 70;
    private boolean inflictorIsStolenAbility_;
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    public boolean hasInflictorIsStolenAbility() {
      return ((bitField2_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional bool inflictor_is_stolen_ability = 70;
     */
    public boolean getInflictorIsStolenAbility() {
      return inflictorIsStolenAbility_;
    }

    public static final int KILL_EATER_EVENT_FIELD_NUMBER = 71;
    private int killEaterEvent_;
    /**
     * optional uint32 kill_eater_event = 71;
     */
    public boolean hasKillEaterEvent() {
      return ((bitField2_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional uint32 kill_eater_event = 71;
     */
    public int getKillEaterEvent() {
      return killEaterEvent_;
    }

    public static final int UNIT_STATUS_LABEL_FIELD_NUMBER = 72;
    private int unitStatusLabel_;
    /**
     * optional uint32 unit_status_label = 72;
     */
    public boolean hasUnitStatusLabel() {
      return ((bitField2_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional uint32 unit_status_label = 72;
     */
    public int getUnitStatusLabel() {
      return unitStatusLabel_;
    }

    public static final int SPELL_GENERATED_ATTACK_FIELD_NUMBER = 73;
    private boolean spellGeneratedAttack_;
    /**
     * optional bool spell_generated_attack = 73;
     */
    public boolean hasSpellGeneratedAttack() {
      return ((bitField2_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool spell_generated_attack = 73;
     */
    public boolean getSpellGeneratedAttack() {
      return spellGeneratedAttack_;
    }

    public static final int AT_NIGHT_TIME_FIELD_NUMBER = 74;
    private boolean atNightTime_;
    /**
     * optional bool at_night_time = 74;
     */
    public boolean hasAtNightTime() {
      return ((bitField2_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool at_night_time = 74;
     */
    public boolean getAtNightTime() {
      return atNightTime_;
    }

    public static final int ATTACKER_HAS_SCEPTER_FIELD_NUMBER = 75;
    private boolean attackerHasScepter_;
    /**
     * optional bool attacker_has_scepter = 75;
     */
    public boolean hasAttackerHasScepter() {
      return ((bitField2_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional bool attacker_has_scepter = 75;
     */
    public boolean getAttackerHasScepter() {
      return attackerHasScepter_;
    }

    public static final int NEUTRAL_CAMP_TEAM_FIELD_NUMBER = 76;
    private int neutralCampTeam_;
    /**
     * optional uint32 neutral_camp_team = 76;
     */
    public boolean hasNeutralCampTeam() {
      return ((bitField2_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional uint32 neutral_camp_team = 76;
     */
    public int getNeutralCampTeam() {
      return neutralCampTeam_;
    }

    public static final int REGENERATED_HEALTH_FIELD_NUMBER = 77;
    private float regeneratedHealth_;
    /**
     * optional float regenerated_health = 77;
     */
    public boolean hasRegeneratedHealth() {
      return ((bitField2_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional float regenerated_health = 77;
     */
    public float getRegeneratedHealth() {
      return regeneratedHealth_;
    }

    public static final int WILL_REINCARNATE_FIELD_NUMBER = 78;
    private boolean willReincarnate_;
    /**
     * optional bool will_reincarnate = 78;
     */
    public boolean hasWillReincarnate() {
      return ((bitField2_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional bool will_reincarnate = 78;
     */
    public boolean getWillReincarnate() {
      return willReincarnate_;
    }

    public static final int USES_CHARGES_FIELD_NUMBER = 79;
    private boolean usesCharges_;
    /**
     * optional bool uses_charges = 79;
     */
    public boolean hasUsesCharges() {
      return ((bitField2_ & 0x00002000) == 0x00002000);
    }
    /**
     * optional bool uses_charges = 79;
     */
    public boolean getUsesCharges() {
      return usesCharges_;
    }

    private void initFields() {
      type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      targetName_ = 0;
      targetSourceName_ = 0;
      attackerName_ = 0;
      damageSourceName_ = 0;
      inflictorName_ = 0;
      isAttackerIllusion_ = false;
      isAttackerHero_ = false;
      isTargetIllusion_ = false;
      isTargetHero_ = false;
      isVisibleRadiant_ = false;
      isVisibleDire_ = false;
      value_ = 0;
      health_ = 0;
      timestamp_ = 0F;
      stunDuration_ = 0F;
      slowDuration_ = 0F;
      isAbilityToggleOn_ = false;
      isAbilityToggleOff_ = false;
      abilityLevel_ = 0;
      locationX_ = 0F;
      locationY_ = 0F;
      goldReason_ = 0;
      timestampRaw_ = 0F;
      modifierDuration_ = 0F;
      xpReason_ = 0;
      lastHits_ = 0;
      attackerTeam_ = 0;
      targetTeam_ = 0;
      obsWardsPlaced_ = 0;
      assistPlayer0_ = 0;
      assistPlayer1_ = 0;
      assistPlayer2_ = 0;
      assistPlayer3_ = 0;
      stackCount_ = 0;
      hiddenModifier_ = false;
      isTargetBuilding_ = false;
      neutralCampType_ = 0;
      runeType_ = 0;
      assistPlayers_ = java.util.Collections.emptyList();
      isHealSave_ = false;
      isUltimateAbility_ = false;
      attackerHeroLevel_ = 0;
      targetHeroLevel_ = 0;
      xpm_ = 0;
      gpm_ = 0;
      eventLocation_ = 0;
      targetIsSelf_ = false;
      damageType_ = 0;
      invisibilityModifier_ = false;
      damageCategory_ = 0;
      networth_ = 0;
      buildingType_ = 0;
      modifierElapsedDuration_ = 0F;
      silenceModifier_ = false;
      healFromLifesteal_ = false;
      modifierPurged_ = false;
      spellEvaded_ = false;
      motionControllerModifier_ = false;
      longRangeKill_ = false;
      modifierPurgeAbility_ = 0;
      modifierPurgeNpc_ = 0;
      rootModifier_ = false;
      totalUnitDeathCount_ = 0;
      auraModifier_ = false;
      armorDebuffModifier_ = false;
      noPhysicalDamageModifier_ = false;
      modifierAbility_ = 0;
      modifierHidden_ = false;
      inflictorIsStolenAbility_ = false;
      killEaterEvent_ = 0;
      unitStatusLabel_ = 0;
      spellGeneratedAttack_ = false;
      atNightTime_ = false;
      attackerHasScepter_ = false;
      neutralCampTeam_ = 0;
      regeneratedHealth_ = 0F;
      willReincarnate_ = false;
      usesCharges_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeEnum(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeUInt32(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeUInt32(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBool(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt32(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeFloat(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeFloat(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeFloat(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeBool(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeBool(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeUInt32(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeFloat(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeFloat(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeUInt32(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeFloat(24, timestampRaw_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeFloat(25, modifierDuration_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeUInt32(26, xpReason_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeUInt32(27, lastHits_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        output.writeUInt32(28, attackerTeam_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        output.writeUInt32(29, targetTeam_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        output.writeUInt32(30, obsWardsPlaced_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        output.writeUInt32(31, assistPlayer0_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        output.writeUInt32(32, assistPlayer1_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(33, assistPlayer2_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(34, assistPlayer3_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(35, stackCount_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        output.writeBool(36, hiddenModifier_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        output.writeBool(37, isTargetBuilding_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(38, neutralCampType_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(39, runeType_);
      }
      for (int i = 0; i < assistPlayers_.size(); i++) {
        output.writeInt32(40, assistPlayers_.get(i));
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        output.writeBool(41, isHealSave_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        output.writeBool(42, isUltimateAbility_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        output.writeUInt32(43, attackerHeroLevel_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(44, targetHeroLevel_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        output.writeUInt32(45, xpm_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        output.writeUInt32(46, gpm_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        output.writeUInt32(47, eventLocation_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        output.writeBool(48, targetIsSelf_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        output.writeUInt32(49, damageType_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        output.writeBool(50, invisibilityModifier_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        output.writeUInt32(51, damageCategory_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        output.writeUInt32(52, networth_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        output.writeUInt32(53, buildingType_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        output.writeFloat(54, modifierElapsedDuration_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        output.writeBool(55, silenceModifier_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        output.writeBool(56, healFromLifesteal_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        output.writeBool(57, modifierPurged_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        output.writeBool(58, spellEvaded_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        output.writeBool(59, motionControllerModifier_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        output.writeBool(60, longRangeKill_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        output.writeUInt32(61, modifierPurgeAbility_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        output.writeUInt32(62, modifierPurgeNpc_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        output.writeBool(63, rootModifier_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        output.writeUInt32(64, totalUnitDeathCount_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        output.writeBool(65, auraModifier_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        output.writeBool(66, armorDebuffModifier_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        output.writeBool(67, noPhysicalDamageModifier_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(68, modifierAbility_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        output.writeBool(69, modifierHidden_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        output.writeBool(70, inflictorIsStolenAbility_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        output.writeUInt32(71, killEaterEvent_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        output.writeUInt32(72, unitStatusLabel_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        output.writeBool(73, spellGeneratedAttack_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        output.writeBool(74, atNightTime_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        output.writeBool(75, attackerHasScepter_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        output.writeUInt32(76, neutralCampTeam_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        output.writeFloat(77, regeneratedHealth_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        output.writeBool(78, willReincarnate_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        output.writeBool(79, usesCharges_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, type_.getNumber());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, targetName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, targetSourceName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, attackerName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, damageSourceName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, inflictorName_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, isAttackerIllusion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, isAttackerHero_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, isTargetIllusion_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, isTargetHero_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, isVisibleRadiant_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, isVisibleDire_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, value_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(14, health_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(15, timestamp_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(16, stunDuration_);
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(17, slowDuration_);
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(18, isAbilityToggleOn_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, isAbilityToggleOff_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(20, abilityLevel_);
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(21, locationX_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(22, locationY_);
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(23, goldReason_);
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(24, timestampRaw_);
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(25, modifierDuration_);
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(26, xpReason_);
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(27, lastHits_);
      }
      if (((bitField0_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(28, attackerTeam_);
      }
      if (((bitField0_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(29, targetTeam_);
      }
      if (((bitField0_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(30, obsWardsPlaced_);
      }
      if (((bitField0_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(31, assistPlayer0_);
      }
      if (((bitField0_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(32, assistPlayer1_);
      }
      if (((bitField1_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(33, assistPlayer2_);
      }
      if (((bitField1_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(34, assistPlayer3_);
      }
      if (((bitField1_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(35, stackCount_);
      }
      if (((bitField1_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(36, hiddenModifier_);
      }
      if (((bitField1_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(37, isTargetBuilding_);
      }
      if (((bitField1_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(38, neutralCampType_);
      }
      if (((bitField1_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(39, runeType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < assistPlayers_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(assistPlayers_.get(i));
        }
        size += dataSize;
        size += 2 * getAssistPlayersList().size();
      }
      if (((bitField1_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(41, isHealSave_);
      }
      if (((bitField1_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(42, isUltimateAbility_);
      }
      if (((bitField1_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(43, attackerHeroLevel_);
      }
      if (((bitField1_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(44, targetHeroLevel_);
      }
      if (((bitField1_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(45, xpm_);
      }
      if (((bitField1_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(46, gpm_);
      }
      if (((bitField1_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(47, eventLocation_);
      }
      if (((bitField1_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(48, targetIsSelf_);
      }
      if (((bitField1_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(49, damageType_);
      }
      if (((bitField1_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(50, invisibilityModifier_);
      }
      if (((bitField1_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(51, damageCategory_);
      }
      if (((bitField1_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(52, networth_);
      }
      if (((bitField1_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(53, buildingType_);
      }
      if (((bitField1_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(54, modifierElapsedDuration_);
      }
      if (((bitField1_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(55, silenceModifier_);
      }
      if (((bitField1_ & 0x00400000) == 0x00400000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(56, healFromLifesteal_);
      }
      if (((bitField1_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(57, modifierPurged_);
      }
      if (((bitField1_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(58, spellEvaded_);
      }
      if (((bitField1_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(59, motionControllerModifier_);
      }
      if (((bitField1_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(60, longRangeKill_);
      }
      if (((bitField1_ & 0x08000000) == 0x08000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(61, modifierPurgeAbility_);
      }
      if (((bitField1_ & 0x10000000) == 0x10000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(62, modifierPurgeNpc_);
      }
      if (((bitField1_ & 0x20000000) == 0x20000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(63, rootModifier_);
      }
      if (((bitField1_ & 0x40000000) == 0x40000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(64, totalUnitDeathCount_);
      }
      if (((bitField1_ & 0x80000000) == 0x80000000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(65, auraModifier_);
      }
      if (((bitField2_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(66, armorDebuffModifier_);
      }
      if (((bitField2_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(67, noPhysicalDamageModifier_);
      }
      if (((bitField2_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(68, modifierAbility_);
      }
      if (((bitField2_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(69, modifierHidden_);
      }
      if (((bitField2_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(70, inflictorIsStolenAbility_);
      }
      if (((bitField2_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(71, killEaterEvent_);
      }
      if (((bitField2_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(72, unitStatusLabel_);
      }
      if (((bitField2_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(73, spellGeneratedAttack_);
      }
      if (((bitField2_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(74, atNightTime_);
      }
      if (((bitField2_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(75, attackerHasScepter_);
      }
      if (((bitField2_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(76, neutralCampTeam_);
      }
      if (((bitField2_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(77, regeneratedHealth_);
      }
      if (((bitField2_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(78, willReincarnate_);
      }
      if (((bitField2_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(79, usesCharges_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CMsgDOTACombatLogEntry}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CMsgDOTACombatLogEntry)
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.class, skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.Builder.class);
      }

      // Construct using skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        bitField0_ = (bitField0_ & ~0x00000001);
        targetName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        targetSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        attackerName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        damageSourceName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        inflictorName_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        isAttackerIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        isTargetIllusion_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetHero_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        isVisibleRadiant_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleDire_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        value_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        health_ = 0;
        bitField0_ = (bitField0_ & ~0x00002000);
        timestamp_ = 0F;
        bitField0_ = (bitField0_ & ~0x00004000);
        stunDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00008000);
        slowDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x00010000);
        isAbilityToggleOn_ = false;
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOff_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        abilityLevel_ = 0;
        bitField0_ = (bitField0_ & ~0x00080000);
        locationX_ = 0F;
        bitField0_ = (bitField0_ & ~0x00100000);
        locationY_ = 0F;
        bitField0_ = (bitField0_ & ~0x00200000);
        goldReason_ = 0;
        bitField0_ = (bitField0_ & ~0x00400000);
        timestampRaw_ = 0F;
        bitField0_ = (bitField0_ & ~0x00800000);
        modifierDuration_ = 0F;
        bitField0_ = (bitField0_ & ~0x01000000);
        xpReason_ = 0;
        bitField0_ = (bitField0_ & ~0x02000000);
        lastHits_ = 0;
        bitField0_ = (bitField0_ & ~0x04000000);
        attackerTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x08000000);
        targetTeam_ = 0;
        bitField0_ = (bitField0_ & ~0x10000000);
        obsWardsPlaced_ = 0;
        bitField0_ = (bitField0_ & ~0x20000000);
        assistPlayer0_ = 0;
        bitField0_ = (bitField0_ & ~0x40000000);
        assistPlayer1_ = 0;
        bitField0_ = (bitField0_ & ~0x80000000);
        assistPlayer2_ = 0;
        bitField1_ = (bitField1_ & ~0x00000001);
        assistPlayer3_ = 0;
        bitField1_ = (bitField1_ & ~0x00000002);
        stackCount_ = 0;
        bitField1_ = (bitField1_ & ~0x00000004);
        hiddenModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00000008);
        isTargetBuilding_ = false;
        bitField1_ = (bitField1_ & ~0x00000010);
        neutralCampType_ = 0;
        bitField1_ = (bitField1_ & ~0x00000020);
        runeType_ = 0;
        bitField1_ = (bitField1_ & ~0x00000040);
        assistPlayers_ = java.util.Collections.emptyList();
        bitField1_ = (bitField1_ & ~0x00000080);
        isHealSave_ = false;
        bitField1_ = (bitField1_ & ~0x00000100);
        isUltimateAbility_ = false;
        bitField1_ = (bitField1_ & ~0x00000200);
        attackerHeroLevel_ = 0;
        bitField1_ = (bitField1_ & ~0x00000400);
        targetHeroLevel_ = 0;
        bitField1_ = (bitField1_ & ~0x00000800);
        xpm_ = 0;
        bitField1_ = (bitField1_ & ~0x00001000);
        gpm_ = 0;
        bitField1_ = (bitField1_ & ~0x00002000);
        eventLocation_ = 0;
        bitField1_ = (bitField1_ & ~0x00004000);
        targetIsSelf_ = false;
        bitField1_ = (bitField1_ & ~0x00008000);
        damageType_ = 0;
        bitField1_ = (bitField1_ & ~0x00010000);
        invisibilityModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00020000);
        damageCategory_ = 0;
        bitField1_ = (bitField1_ & ~0x00040000);
        networth_ = 0;
        bitField1_ = (bitField1_ & ~0x00080000);
        buildingType_ = 0;
        bitField1_ = (bitField1_ & ~0x00100000);
        modifierElapsedDuration_ = 0F;
        bitField1_ = (bitField1_ & ~0x00200000);
        silenceModifier_ = false;
        bitField1_ = (bitField1_ & ~0x00400000);
        healFromLifesteal_ = false;
        bitField1_ = (bitField1_ & ~0x00800000);
        modifierPurged_ = false;
        bitField1_ = (bitField1_ & ~0x01000000);
        spellEvaded_ = false;
        bitField1_ = (bitField1_ & ~0x02000000);
        motionControllerModifier_ = false;
        bitField1_ = (bitField1_ & ~0x04000000);
        longRangeKill_ = false;
        bitField1_ = (bitField1_ & ~0x08000000);
        modifierPurgeAbility_ = 0;
        bitField1_ = (bitField1_ & ~0x10000000);
        modifierPurgeNpc_ = 0;
        bitField1_ = (bitField1_ & ~0x20000000);
        rootModifier_ = false;
        bitField1_ = (bitField1_ & ~0x40000000);
        totalUnitDeathCount_ = 0;
        bitField1_ = (bitField1_ & ~0x80000000);
        auraModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000001);
        armorDebuffModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000002);
        noPhysicalDamageModifier_ = false;
        bitField2_ = (bitField2_ & ~0x00000004);
        modifierAbility_ = 0;
        bitField2_ = (bitField2_ & ~0x00000008);
        modifierHidden_ = false;
        bitField2_ = (bitField2_ & ~0x00000010);
        inflictorIsStolenAbility_ = false;
        bitField2_ = (bitField2_ & ~0x00000020);
        killEaterEvent_ = 0;
        bitField2_ = (bitField2_ & ~0x00000040);
        unitStatusLabel_ = 0;
        bitField2_ = (bitField2_ & ~0x00000080);
        spellGeneratedAttack_ = false;
        bitField2_ = (bitField2_ & ~0x00000100);
        atNightTime_ = false;
        bitField2_ = (bitField2_ & ~0x00000200);
        attackerHasScepter_ = false;
        bitField2_ = (bitField2_ & ~0x00000400);
        neutralCampTeam_ = 0;
        bitField2_ = (bitField2_ & ~0x00000800);
        regeneratedHealth_ = 0F;
        bitField2_ = (bitField2_ & ~0x00001000);
        willReincarnate_ = false;
        bitField2_ = (bitField2_ & ~0x00002000);
        usesCharges_ = false;
        bitField2_ = (bitField2_ & ~0x00004000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.internal_static_CMsgDOTACombatLogEntry_descriptor;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry getDefaultInstanceForType() {
        return skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance();
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry build() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry buildPartial() {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry result = new skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry(this);
        int from_bitField0_ = bitField0_;
        int from_bitField1_ = bitField1_;
        int from_bitField2_ = bitField2_;
        int to_bitField0_ = 0;
        int to_bitField1_ = 0;
        int to_bitField2_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.targetName_ = targetName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.targetSourceName_ = targetSourceName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.attackerName_ = attackerName_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.damageSourceName_ = damageSourceName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.inflictorName_ = inflictorName_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.isAttackerIllusion_ = isAttackerIllusion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.isAttackerHero_ = isAttackerHero_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.isTargetIllusion_ = isTargetIllusion_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.isTargetHero_ = isTargetHero_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.isVisibleRadiant_ = isVisibleRadiant_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.isVisibleDire_ = isVisibleDire_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.health_ = health_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.timestamp_ = timestamp_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        result.stunDuration_ = stunDuration_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.slowDuration_ = slowDuration_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.isAbilityToggleOn_ = isAbilityToggleOn_;
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.isAbilityToggleOff_ = isAbilityToggleOff_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        result.abilityLevel_ = abilityLevel_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.locationX_ = locationX_;
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.locationY_ = locationY_;
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        result.goldReason_ = goldReason_;
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        result.timestampRaw_ = timestampRaw_;
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x01000000;
        }
        result.modifierDuration_ = modifierDuration_;
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x02000000;
        }
        result.xpReason_ = xpReason_;
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x04000000;
        }
        result.lastHits_ = lastHits_;
        if (((from_bitField0_ & 0x08000000) == 0x08000000)) {
          to_bitField0_ |= 0x08000000;
        }
        result.attackerTeam_ = attackerTeam_;
        if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
          to_bitField0_ |= 0x10000000;
        }
        result.targetTeam_ = targetTeam_;
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x20000000;
        }
        result.obsWardsPlaced_ = obsWardsPlaced_;
        if (((from_bitField0_ & 0x40000000) == 0x40000000)) {
          to_bitField0_ |= 0x40000000;
        }
        result.assistPlayer0_ = assistPlayer0_;
        if (((from_bitField0_ & 0x80000000) == 0x80000000)) {
          to_bitField0_ |= 0x80000000;
        }
        result.assistPlayer1_ = assistPlayer1_;
        if (((from_bitField1_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x00000001;
        }
        result.assistPlayer2_ = assistPlayer2_;
        if (((from_bitField1_ & 0x00000002) == 0x00000002)) {
          to_bitField1_ |= 0x00000002;
        }
        result.assistPlayer3_ = assistPlayer3_;
        if (((from_bitField1_ & 0x00000004) == 0x00000004)) {
          to_bitField1_ |= 0x00000004;
        }
        result.stackCount_ = stackCount_;
        if (((from_bitField1_ & 0x00000008) == 0x00000008)) {
          to_bitField1_ |= 0x00000008;
        }
        result.hiddenModifier_ = hiddenModifier_;
        if (((from_bitField1_ & 0x00000010) == 0x00000010)) {
          to_bitField1_ |= 0x00000010;
        }
        result.isTargetBuilding_ = isTargetBuilding_;
        if (((from_bitField1_ & 0x00000020) == 0x00000020)) {
          to_bitField1_ |= 0x00000020;
        }
        result.neutralCampType_ = neutralCampType_;
        if (((from_bitField1_ & 0x00000040) == 0x00000040)) {
          to_bitField1_ |= 0x00000040;
        }
        result.runeType_ = runeType_;
        if (((bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = java.util.Collections.unmodifiableList(assistPlayers_);
          bitField1_ = (bitField1_ & ~0x00000080);
        }
        result.assistPlayers_ = assistPlayers_;
        if (((from_bitField1_ & 0x00000100) == 0x00000100)) {
          to_bitField1_ |= 0x00000080;
        }
        result.isHealSave_ = isHealSave_;
        if (((from_bitField1_ & 0x00000200) == 0x00000200)) {
          to_bitField1_ |= 0x00000100;
        }
        result.isUltimateAbility_ = isUltimateAbility_;
        if (((from_bitField1_ & 0x00000400) == 0x00000400)) {
          to_bitField1_ |= 0x00000200;
        }
        result.attackerHeroLevel_ = attackerHeroLevel_;
        if (((from_bitField1_ & 0x00000800) == 0x00000800)) {
          to_bitField1_ |= 0x00000400;
        }
        result.targetHeroLevel_ = targetHeroLevel_;
        if (((from_bitField1_ & 0x00001000) == 0x00001000)) {
          to_bitField1_ |= 0x00000800;
        }
        result.xpm_ = xpm_;
        if (((from_bitField1_ & 0x00002000) == 0x00002000)) {
          to_bitField1_ |= 0x00001000;
        }
        result.gpm_ = gpm_;
        if (((from_bitField1_ & 0x00004000) == 0x00004000)) {
          to_bitField1_ |= 0x00002000;
        }
        result.eventLocation_ = eventLocation_;
        if (((from_bitField1_ & 0x00008000) == 0x00008000)) {
          to_bitField1_ |= 0x00004000;
        }
        result.targetIsSelf_ = targetIsSelf_;
        if (((from_bitField1_ & 0x00010000) == 0x00010000)) {
          to_bitField1_ |= 0x00008000;
        }
        result.damageType_ = damageType_;
        if (((from_bitField1_ & 0x00020000) == 0x00020000)) {
          to_bitField1_ |= 0x00010000;
        }
        result.invisibilityModifier_ = invisibilityModifier_;
        if (((from_bitField1_ & 0x00040000) == 0x00040000)) {
          to_bitField1_ |= 0x00020000;
        }
        result.damageCategory_ = damageCategory_;
        if (((from_bitField1_ & 0x00080000) == 0x00080000)) {
          to_bitField1_ |= 0x00040000;
        }
        result.networth_ = networth_;
        if (((from_bitField1_ & 0x00100000) == 0x00100000)) {
          to_bitField1_ |= 0x00080000;
        }
        result.buildingType_ = buildingType_;
        if (((from_bitField1_ & 0x00200000) == 0x00200000)) {
          to_bitField1_ |= 0x00100000;
        }
        result.modifierElapsedDuration_ = modifierElapsedDuration_;
        if (((from_bitField1_ & 0x00400000) == 0x00400000)) {
          to_bitField1_ |= 0x00200000;
        }
        result.silenceModifier_ = silenceModifier_;
        if (((from_bitField1_ & 0x00800000) == 0x00800000)) {
          to_bitField1_ |= 0x00400000;
        }
        result.healFromLifesteal_ = healFromLifesteal_;
        if (((from_bitField1_ & 0x01000000) == 0x01000000)) {
          to_bitField1_ |= 0x00800000;
        }
        result.modifierPurged_ = modifierPurged_;
        if (((from_bitField1_ & 0x02000000) == 0x02000000)) {
          to_bitField1_ |= 0x01000000;
        }
        result.spellEvaded_ = spellEvaded_;
        if (((from_bitField1_ & 0x04000000) == 0x04000000)) {
          to_bitField1_ |= 0x02000000;
        }
        result.motionControllerModifier_ = motionControllerModifier_;
        if (((from_bitField1_ & 0x08000000) == 0x08000000)) {
          to_bitField1_ |= 0x04000000;
        }
        result.longRangeKill_ = longRangeKill_;
        if (((from_bitField1_ & 0x10000000) == 0x10000000)) {
          to_bitField1_ |= 0x08000000;
        }
        result.modifierPurgeAbility_ = modifierPurgeAbility_;
        if (((from_bitField1_ & 0x20000000) == 0x20000000)) {
          to_bitField1_ |= 0x10000000;
        }
        result.modifierPurgeNpc_ = modifierPurgeNpc_;
        if (((from_bitField1_ & 0x40000000) == 0x40000000)) {
          to_bitField1_ |= 0x20000000;
        }
        result.rootModifier_ = rootModifier_;
        if (((from_bitField1_ & 0x80000000) == 0x80000000)) {
          to_bitField1_ |= 0x40000000;
        }
        result.totalUnitDeathCount_ = totalUnitDeathCount_;
        if (((from_bitField2_ & 0x00000001) == 0x00000001)) {
          to_bitField1_ |= 0x80000000;
        }
        result.auraModifier_ = auraModifier_;
        if (((from_bitField2_ & 0x00000002) == 0x00000002)) {
          to_bitField2_ |= 0x00000001;
        }
        result.armorDebuffModifier_ = armorDebuffModifier_;
        if (((from_bitField2_ & 0x00000004) == 0x00000004)) {
          to_bitField2_ |= 0x00000002;
        }
        result.noPhysicalDamageModifier_ = noPhysicalDamageModifier_;
        if (((from_bitField2_ & 0x00000008) == 0x00000008)) {
          to_bitField2_ |= 0x00000004;
        }
        result.modifierAbility_ = modifierAbility_;
        if (((from_bitField2_ & 0x00000010) == 0x00000010)) {
          to_bitField2_ |= 0x00000008;
        }
        result.modifierHidden_ = modifierHidden_;
        if (((from_bitField2_ & 0x00000020) == 0x00000020)) {
          to_bitField2_ |= 0x00000010;
        }
        result.inflictorIsStolenAbility_ = inflictorIsStolenAbility_;
        if (((from_bitField2_ & 0x00000040) == 0x00000040)) {
          to_bitField2_ |= 0x00000020;
        }
        result.killEaterEvent_ = killEaterEvent_;
        if (((from_bitField2_ & 0x00000080) == 0x00000080)) {
          to_bitField2_ |= 0x00000040;
        }
        result.unitStatusLabel_ = unitStatusLabel_;
        if (((from_bitField2_ & 0x00000100) == 0x00000100)) {
          to_bitField2_ |= 0x00000080;
        }
        result.spellGeneratedAttack_ = spellGeneratedAttack_;
        if (((from_bitField2_ & 0x00000200) == 0x00000200)) {
          to_bitField2_ |= 0x00000100;
        }
        result.atNightTime_ = atNightTime_;
        if (((from_bitField2_ & 0x00000400) == 0x00000400)) {
          to_bitField2_ |= 0x00000200;
        }
        result.attackerHasScepter_ = attackerHasScepter_;
        if (((from_bitField2_ & 0x00000800) == 0x00000800)) {
          to_bitField2_ |= 0x00000400;
        }
        result.neutralCampTeam_ = neutralCampTeam_;
        if (((from_bitField2_ & 0x00001000) == 0x00001000)) {
          to_bitField2_ |= 0x00000800;
        }
        result.regeneratedHealth_ = regeneratedHealth_;
        if (((from_bitField2_ & 0x00002000) == 0x00002000)) {
          to_bitField2_ |= 0x00001000;
        }
        result.willReincarnate_ = willReincarnate_;
        if (((from_bitField2_ & 0x00004000) == 0x00004000)) {
          to_bitField2_ |= 0x00002000;
        }
        result.usesCharges_ = usesCharges_;
        result.bitField0_ = to_bitField0_;
        result.bitField1_ = to_bitField1_;
        result.bitField2_ = to_bitField2_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry) {
          return mergeFrom((skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry other) {
        if (other == skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry.getDefaultInstance()) return this;
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasTargetName()) {
          setTargetName(other.getTargetName());
        }
        if (other.hasTargetSourceName()) {
          setTargetSourceName(other.getTargetSourceName());
        }
        if (other.hasAttackerName()) {
          setAttackerName(other.getAttackerName());
        }
        if (other.hasDamageSourceName()) {
          setDamageSourceName(other.getDamageSourceName());
        }
        if (other.hasInflictorName()) {
          setInflictorName(other.getInflictorName());
        }
        if (other.hasIsAttackerIllusion()) {
          setIsAttackerIllusion(other.getIsAttackerIllusion());
        }
        if (other.hasIsAttackerHero()) {
          setIsAttackerHero(other.getIsAttackerHero());
        }
        if (other.hasIsTargetIllusion()) {
          setIsTargetIllusion(other.getIsTargetIllusion());
        }
        if (other.hasIsTargetHero()) {
          setIsTargetHero(other.getIsTargetHero());
        }
        if (other.hasIsVisibleRadiant()) {
          setIsVisibleRadiant(other.getIsVisibleRadiant());
        }
        if (other.hasIsVisibleDire()) {
          setIsVisibleDire(other.getIsVisibleDire());
        }
        if (other.hasValue()) {
          setValue(other.getValue());
        }
        if (other.hasHealth()) {
          setHealth(other.getHealth());
        }
        if (other.hasTimestamp()) {
          setTimestamp(other.getTimestamp());
        }
        if (other.hasStunDuration()) {
          setStunDuration(other.getStunDuration());
        }
        if (other.hasSlowDuration()) {
          setSlowDuration(other.getSlowDuration());
        }
        if (other.hasIsAbilityToggleOn()) {
          setIsAbilityToggleOn(other.getIsAbilityToggleOn());
        }
        if (other.hasIsAbilityToggleOff()) {
          setIsAbilityToggleOff(other.getIsAbilityToggleOff());
        }
        if (other.hasAbilityLevel()) {
          setAbilityLevel(other.getAbilityLevel());
        }
        if (other.hasLocationX()) {
          setLocationX(other.getLocationX());
        }
        if (other.hasLocationY()) {
          setLocationY(other.getLocationY());
        }
        if (other.hasGoldReason()) {
          setGoldReason(other.getGoldReason());
        }
        if (other.hasTimestampRaw()) {
          setTimestampRaw(other.getTimestampRaw());
        }
        if (other.hasModifierDuration()) {
          setModifierDuration(other.getModifierDuration());
        }
        if (other.hasXpReason()) {
          setXpReason(other.getXpReason());
        }
        if (other.hasLastHits()) {
          setLastHits(other.getLastHits());
        }
        if (other.hasAttackerTeam()) {
          setAttackerTeam(other.getAttackerTeam());
        }
        if (other.hasTargetTeam()) {
          setTargetTeam(other.getTargetTeam());
        }
        if (other.hasObsWardsPlaced()) {
          setObsWardsPlaced(other.getObsWardsPlaced());
        }
        if (other.hasAssistPlayer0()) {
          setAssistPlayer0(other.getAssistPlayer0());
        }
        if (other.hasAssistPlayer1()) {
          setAssistPlayer1(other.getAssistPlayer1());
        }
        if (other.hasAssistPlayer2()) {
          setAssistPlayer2(other.getAssistPlayer2());
        }
        if (other.hasAssistPlayer3()) {
          setAssistPlayer3(other.getAssistPlayer3());
        }
        if (other.hasStackCount()) {
          setStackCount(other.getStackCount());
        }
        if (other.hasHiddenModifier()) {
          setHiddenModifier(other.getHiddenModifier());
        }
        if (other.hasIsTargetBuilding()) {
          setIsTargetBuilding(other.getIsTargetBuilding());
        }
        if (other.hasNeutralCampType()) {
          setNeutralCampType(other.getNeutralCampType());
        }
        if (other.hasRuneType()) {
          setRuneType(other.getRuneType());
        }
        if (!other.assistPlayers_.isEmpty()) {
          if (assistPlayers_.isEmpty()) {
            assistPlayers_ = other.assistPlayers_;
            bitField1_ = (bitField1_ & ~0x00000080);
          } else {
            ensureAssistPlayersIsMutable();
            assistPlayers_.addAll(other.assistPlayers_);
          }
          onChanged();
        }
        if (other.hasIsHealSave()) {
          setIsHealSave(other.getIsHealSave());
        }
        if (other.hasIsUltimateAbility()) {
          setIsUltimateAbility(other.getIsUltimateAbility());
        }
        if (other.hasAttackerHeroLevel()) {
          setAttackerHeroLevel(other.getAttackerHeroLevel());
        }
        if (other.hasTargetHeroLevel()) {
          setTargetHeroLevel(other.getTargetHeroLevel());
        }
        if (other.hasXpm()) {
          setXpm(other.getXpm());
        }
        if (other.hasGpm()) {
          setGpm(other.getGpm());
        }
        if (other.hasEventLocation()) {
          setEventLocation(other.getEventLocation());
        }
        if (other.hasTargetIsSelf()) {
          setTargetIsSelf(other.getTargetIsSelf());
        }
        if (other.hasDamageType()) {
          setDamageType(other.getDamageType());
        }
        if (other.hasInvisibilityModifier()) {
          setInvisibilityModifier(other.getInvisibilityModifier());
        }
        if (other.hasDamageCategory()) {
          setDamageCategory(other.getDamageCategory());
        }
        if (other.hasNetworth()) {
          setNetworth(other.getNetworth());
        }
        if (other.hasBuildingType()) {
          setBuildingType(other.getBuildingType());
        }
        if (other.hasModifierElapsedDuration()) {
          setModifierElapsedDuration(other.getModifierElapsedDuration());
        }
        if (other.hasSilenceModifier()) {
          setSilenceModifier(other.getSilenceModifier());
        }
        if (other.hasHealFromLifesteal()) {
          setHealFromLifesteal(other.getHealFromLifesteal());
        }
        if (other.hasModifierPurged()) {
          setModifierPurged(other.getModifierPurged());
        }
        if (other.hasSpellEvaded()) {
          setSpellEvaded(other.getSpellEvaded());
        }
        if (other.hasMotionControllerModifier()) {
          setMotionControllerModifier(other.getMotionControllerModifier());
        }
        if (other.hasLongRangeKill()) {
          setLongRangeKill(other.getLongRangeKill());
        }
        if (other.hasModifierPurgeAbility()) {
          setModifierPurgeAbility(other.getModifierPurgeAbility());
        }
        if (other.hasModifierPurgeNpc()) {
          setModifierPurgeNpc(other.getModifierPurgeNpc());
        }
        if (other.hasRootModifier()) {
          setRootModifier(other.getRootModifier());
        }
        if (other.hasTotalUnitDeathCount()) {
          setTotalUnitDeathCount(other.getTotalUnitDeathCount());
        }
        if (other.hasAuraModifier()) {
          setAuraModifier(other.getAuraModifier());
        }
        if (other.hasArmorDebuffModifier()) {
          setArmorDebuffModifier(other.getArmorDebuffModifier());
        }
        if (other.hasNoPhysicalDamageModifier()) {
          setNoPhysicalDamageModifier(other.getNoPhysicalDamageModifier());
        }
        if (other.hasModifierAbility()) {
          setModifierAbility(other.getModifierAbility());
        }
        if (other.hasModifierHidden()) {
          setModifierHidden(other.getModifierHidden());
        }
        if (other.hasInflictorIsStolenAbility()) {
          setInflictorIsStolenAbility(other.getInflictorIsStolenAbility());
        }
        if (other.hasKillEaterEvent()) {
          setKillEaterEvent(other.getKillEaterEvent());
        }
        if (other.hasUnitStatusLabel()) {
          setUnitStatusLabel(other.getUnitStatusLabel());
        }
        if (other.hasSpellGeneratedAttack()) {
          setSpellGeneratedAttack(other.getSpellGeneratedAttack());
        }
        if (other.hasAtNightTime()) {
          setAtNightTime(other.getAtNightTime());
        }
        if (other.hasAttackerHasScepter()) {
          setAttackerHasScepter(other.getAttackerHasScepter());
        }
        if (other.hasNeutralCampTeam()) {
          setNeutralCampTeam(other.getNeutralCampTeam());
        }
        if (other.hasRegeneratedHealth()) {
          setRegeneratedHealth(other.getRegeneratedHealth());
        }
        if (other.hasWillReincarnate()) {
          setWillReincarnate(other.getWillReincarnate());
        }
        if (other.hasUsesCharges()) {
          setUsesCharges(other.getUsesCharges());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.CMsgDOTACombatLogEntry) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;
      private int bitField1_;
      private int bitField2_;

      private skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES getType() {
        return type_;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder setType(skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .DOTA_COMBATLOG_TYPES type = 1 [default = DOTA_COMBATLOG_DAMAGE];
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = skadistats.clarity.wire.dota.common.proto.DOTAUserMessages.DOTA_COMBATLOG_TYPES.DOTA_COMBATLOG_DAMAGE;
        onChanged();
        return this;
      }

      private int targetName_ ;
      /**
       * optional uint32 target_name = 2;
       */
      public boolean hasTargetName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 target_name = 2;
       */
      public int getTargetName() {
        return targetName_;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder setTargetName(int value) {
        bitField0_ |= 0x00000002;
        targetName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_name = 2;
       */
      public Builder clearTargetName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetName_ = 0;
        onChanged();
        return this;
      }

      private int targetSourceName_ ;
      /**
       * optional uint32 target_source_name = 3;
       */
      public boolean hasTargetSourceName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public int getTargetSourceName() {
        return targetSourceName_;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder setTargetSourceName(int value) {
        bitField0_ |= 0x00000004;
        targetSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_source_name = 3;
       */
      public Builder clearTargetSourceName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        targetSourceName_ = 0;
        onChanged();
        return this;
      }

      private int attackerName_ ;
      /**
       * optional uint32 attacker_name = 4;
       */
      public boolean hasAttackerName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public int getAttackerName() {
        return attackerName_;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder setAttackerName(int value) {
        bitField0_ |= 0x00000008;
        attackerName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_name = 4;
       */
      public Builder clearAttackerName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        attackerName_ = 0;
        onChanged();
        return this;
      }

      private int damageSourceName_ ;
      /**
       * optional uint32 damage_source_name = 5;
       */
      public boolean hasDamageSourceName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public int getDamageSourceName() {
        return damageSourceName_;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder setDamageSourceName(int value) {
        bitField0_ |= 0x00000010;
        damageSourceName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_source_name = 5;
       */
      public Builder clearDamageSourceName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        damageSourceName_ = 0;
        onChanged();
        return this;
      }

      private int inflictorName_ ;
      /**
       * optional uint32 inflictor_name = 6;
       */
      public boolean hasInflictorName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public int getInflictorName() {
        return inflictorName_;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder setInflictorName(int value) {
        bitField0_ |= 0x00000020;
        inflictorName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 inflictor_name = 6;
       */
      public Builder clearInflictorName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        inflictorName_ = 0;
        onChanged();
        return this;
      }

      private boolean isAttackerIllusion_ ;
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean hasIsAttackerIllusion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public boolean getIsAttackerIllusion() {
        return isAttackerIllusion_;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder setIsAttackerIllusion(boolean value) {
        bitField0_ |= 0x00000040;
        isAttackerIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_illusion = 7;
       */
      public Builder clearIsAttackerIllusion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        isAttackerIllusion_ = false;
        onChanged();
        return this;
      }

      private boolean isAttackerHero_ ;
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean hasIsAttackerHero() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public boolean getIsAttackerHero() {
        return isAttackerHero_;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder setIsAttackerHero(boolean value) {
        bitField0_ |= 0x00000080;
        isAttackerHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_attacker_hero = 8;
       */
      public Builder clearIsAttackerHero() {
        bitField0_ = (bitField0_ & ~0x00000080);
        isAttackerHero_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetIllusion_ ;
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean hasIsTargetIllusion() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public boolean getIsTargetIllusion() {
        return isTargetIllusion_;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder setIsTargetIllusion(boolean value) {
        bitField0_ |= 0x00000100;
        isTargetIllusion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_illusion = 9;
       */
      public Builder clearIsTargetIllusion() {
        bitField0_ = (bitField0_ & ~0x00000100);
        isTargetIllusion_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetHero_ ;
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean hasIsTargetHero() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public boolean getIsTargetHero() {
        return isTargetHero_;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder setIsTargetHero(boolean value) {
        bitField0_ |= 0x00000200;
        isTargetHero_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_hero = 10;
       */
      public Builder clearIsTargetHero() {
        bitField0_ = (bitField0_ & ~0x00000200);
        isTargetHero_ = false;
        onChanged();
        return this;
      }

      private boolean isVisibleRadiant_ ;
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean hasIsVisibleRadiant() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public boolean getIsVisibleRadiant() {
        return isVisibleRadiant_;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder setIsVisibleRadiant(boolean value) {
        bitField0_ |= 0x00000400;
        isVisibleRadiant_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_radiant = 11;
       */
      public Builder clearIsVisibleRadiant() {
        bitField0_ = (bitField0_ & ~0x00000400);
        isVisibleRadiant_ = false;
        onChanged();
        return this;
      }

      private boolean isVisibleDire_ ;
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean hasIsVisibleDire() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public boolean getIsVisibleDire() {
        return isVisibleDire_;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder setIsVisibleDire(boolean value) {
        bitField0_ |= 0x00000800;
        isVisibleDire_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_visible_dire = 12;
       */
      public Builder clearIsVisibleDire() {
        bitField0_ = (bitField0_ & ~0x00000800);
        isVisibleDire_ = false;
        onChanged();
        return this;
      }

      private int value_ ;
      /**
       * optional uint32 value = 13;
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 value = 13;
       */
      public int getValue() {
        return value_;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder setValue(int value) {
        bitField0_ |= 0x00001000;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 value = 13;
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00001000);
        value_ = 0;
        onChanged();
        return this;
      }

      private int health_ ;
      /**
       * optional int32 health = 14;
       */
      public boolean hasHealth() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional int32 health = 14;
       */
      public int getHealth() {
        return health_;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder setHealth(int value) {
        bitField0_ |= 0x00002000;
        health_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 health = 14;
       */
      public Builder clearHealth() {
        bitField0_ = (bitField0_ & ~0x00002000);
        health_ = 0;
        onChanged();
        return this;
      }

      private float timestamp_ ;
      /**
       * optional float timestamp = 15;
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional float timestamp = 15;
       */
      public float getTimestamp() {
        return timestamp_;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder setTimestamp(float value) {
        bitField0_ |= 0x00004000;
        timestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp = 15;
       */
      public Builder clearTimestamp() {
        bitField0_ = (bitField0_ & ~0x00004000);
        timestamp_ = 0F;
        onChanged();
        return this;
      }

      private float stunDuration_ ;
      /**
       * optional float stun_duration = 16;
       */
      public boolean hasStunDuration() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional float stun_duration = 16;
       */
      public float getStunDuration() {
        return stunDuration_;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder setStunDuration(float value) {
        bitField0_ |= 0x00008000;
        stunDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float stun_duration = 16;
       */
      public Builder clearStunDuration() {
        bitField0_ = (bitField0_ & ~0x00008000);
        stunDuration_ = 0F;
        onChanged();
        return this;
      }

      private float slowDuration_ ;
      /**
       * optional float slow_duration = 17;
       */
      public boolean hasSlowDuration() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional float slow_duration = 17;
       */
      public float getSlowDuration() {
        return slowDuration_;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder setSlowDuration(float value) {
        bitField0_ |= 0x00010000;
        slowDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float slow_duration = 17;
       */
      public Builder clearSlowDuration() {
        bitField0_ = (bitField0_ & ~0x00010000);
        slowDuration_ = 0F;
        onChanged();
        return this;
      }

      private boolean isAbilityToggleOn_ ;
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean hasIsAbilityToggleOn() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public boolean getIsAbilityToggleOn() {
        return isAbilityToggleOn_;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder setIsAbilityToggleOn(boolean value) {
        bitField0_ |= 0x00020000;
        isAbilityToggleOn_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_on = 18;
       */
      public Builder clearIsAbilityToggleOn() {
        bitField0_ = (bitField0_ & ~0x00020000);
        isAbilityToggleOn_ = false;
        onChanged();
        return this;
      }

      private boolean isAbilityToggleOff_ ;
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean hasIsAbilityToggleOff() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public boolean getIsAbilityToggleOff() {
        return isAbilityToggleOff_;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder setIsAbilityToggleOff(boolean value) {
        bitField0_ |= 0x00040000;
        isAbilityToggleOff_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ability_toggle_off = 19;
       */
      public Builder clearIsAbilityToggleOff() {
        bitField0_ = (bitField0_ & ~0x00040000);
        isAbilityToggleOff_ = false;
        onChanged();
        return this;
      }

      private int abilityLevel_ ;
      /**
       * optional uint32 ability_level = 20;
       */
      public boolean hasAbilityLevel() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public int getAbilityLevel() {
        return abilityLevel_;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder setAbilityLevel(int value) {
        bitField0_ |= 0x00080000;
        abilityLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 ability_level = 20;
       */
      public Builder clearAbilityLevel() {
        bitField0_ = (bitField0_ & ~0x00080000);
        abilityLevel_ = 0;
        onChanged();
        return this;
      }

      private float locationX_ ;
      /**
       * optional float location_x = 21;
       */
      public boolean hasLocationX() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional float location_x = 21;
       */
      public float getLocationX() {
        return locationX_;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder setLocationX(float value) {
        bitField0_ |= 0x00100000;
        locationX_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_x = 21;
       */
      public Builder clearLocationX() {
        bitField0_ = (bitField0_ & ~0x00100000);
        locationX_ = 0F;
        onChanged();
        return this;
      }

      private float locationY_ ;
      /**
       * optional float location_y = 22;
       */
      public boolean hasLocationY() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional float location_y = 22;
       */
      public float getLocationY() {
        return locationY_;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder setLocationY(float value) {
        bitField0_ |= 0x00200000;
        locationY_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float location_y = 22;
       */
      public Builder clearLocationY() {
        bitField0_ = (bitField0_ & ~0x00200000);
        locationY_ = 0F;
        onChanged();
        return this;
      }

      private int goldReason_ ;
      /**
       * optional uint32 gold_reason = 23;
       */
      public boolean hasGoldReason() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public int getGoldReason() {
        return goldReason_;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder setGoldReason(int value) {
        bitField0_ |= 0x00400000;
        goldReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gold_reason = 23;
       */
      public Builder clearGoldReason() {
        bitField0_ = (bitField0_ & ~0x00400000);
        goldReason_ = 0;
        onChanged();
        return this;
      }

      private float timestampRaw_ ;
      /**
       * optional float timestamp_raw = 24;
       */
      public boolean hasTimestampRaw() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public float getTimestampRaw() {
        return timestampRaw_;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder setTimestampRaw(float value) {
        bitField0_ |= 0x00800000;
        timestampRaw_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float timestamp_raw = 24;
       */
      public Builder clearTimestampRaw() {
        bitField0_ = (bitField0_ & ~0x00800000);
        timestampRaw_ = 0F;
        onChanged();
        return this;
      }

      private float modifierDuration_ ;
      /**
       * optional float modifier_duration = 25;
       */
      public boolean hasModifierDuration() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      /**
       * optional float modifier_duration = 25;
       */
      public float getModifierDuration() {
        return modifierDuration_;
      }
      /**
       * optional float modifier_duration = 25;
       */
      public Builder setModifierDuration(float value) {
        bitField0_ |= 0x01000000;
        modifierDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float modifier_duration = 25;
       */
      public Builder clearModifierDuration() {
        bitField0_ = (bitField0_ & ~0x01000000);
        modifierDuration_ = 0F;
        onChanged();
        return this;
      }

      private int xpReason_ ;
      /**
       * optional uint32 xp_reason = 26;
       */
      public boolean hasXpReason() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public int getXpReason() {
        return xpReason_;
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public Builder setXpReason(int value) {
        bitField0_ |= 0x02000000;
        xpReason_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xp_reason = 26;
       */
      public Builder clearXpReason() {
        bitField0_ = (bitField0_ & ~0x02000000);
        xpReason_ = 0;
        onChanged();
        return this;
      }

      private int lastHits_ ;
      /**
       * optional uint32 last_hits = 27;
       */
      public boolean hasLastHits() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public int getLastHits() {
        return lastHits_;
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public Builder setLastHits(int value) {
        bitField0_ |= 0x04000000;
        lastHits_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 last_hits = 27;
       */
      public Builder clearLastHits() {
        bitField0_ = (bitField0_ & ~0x04000000);
        lastHits_ = 0;
        onChanged();
        return this;
      }

      private int attackerTeam_ ;
      /**
       * optional uint32 attacker_team = 28;
       */
      public boolean hasAttackerTeam() {
        return ((bitField0_ & 0x08000000) == 0x08000000);
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public int getAttackerTeam() {
        return attackerTeam_;
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public Builder setAttackerTeam(int value) {
        bitField0_ |= 0x08000000;
        attackerTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_team = 28;
       */
      public Builder clearAttackerTeam() {
        bitField0_ = (bitField0_ & ~0x08000000);
        attackerTeam_ = 0;
        onChanged();
        return this;
      }

      private int targetTeam_ ;
      /**
       * optional uint32 target_team = 29;
       */
      public boolean hasTargetTeam() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      /**
       * optional uint32 target_team = 29;
       */
      public int getTargetTeam() {
        return targetTeam_;
      }
      /**
       * optional uint32 target_team = 29;
       */
      public Builder setTargetTeam(int value) {
        bitField0_ |= 0x10000000;
        targetTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_team = 29;
       */
      public Builder clearTargetTeam() {
        bitField0_ = (bitField0_ & ~0x10000000);
        targetTeam_ = 0;
        onChanged();
        return this;
      }

      private int obsWardsPlaced_ ;
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public boolean hasObsWardsPlaced() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public int getObsWardsPlaced() {
        return obsWardsPlaced_;
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public Builder setObsWardsPlaced(int value) {
        bitField0_ |= 0x20000000;
        obsWardsPlaced_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 obs_wards_placed = 30;
       */
      public Builder clearObsWardsPlaced() {
        bitField0_ = (bitField0_ & ~0x20000000);
        obsWardsPlaced_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer0_ ;
      /**
       * optional uint32 assist_player0 = 31;
       */
      public boolean hasAssistPlayer0() {
        return ((bitField0_ & 0x40000000) == 0x40000000);
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public int getAssistPlayer0() {
        return assistPlayer0_;
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public Builder setAssistPlayer0(int value) {
        bitField0_ |= 0x40000000;
        assistPlayer0_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player0 = 31;
       */
      public Builder clearAssistPlayer0() {
        bitField0_ = (bitField0_ & ~0x40000000);
        assistPlayer0_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer1_ ;
      /**
       * optional uint32 assist_player1 = 32;
       */
      public boolean hasAssistPlayer1() {
        return ((bitField0_ & 0x80000000) == 0x80000000);
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public int getAssistPlayer1() {
        return assistPlayer1_;
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public Builder setAssistPlayer1(int value) {
        bitField0_ |= 0x80000000;
        assistPlayer1_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player1 = 32;
       */
      public Builder clearAssistPlayer1() {
        bitField0_ = (bitField0_ & ~0x80000000);
        assistPlayer1_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer2_ ;
      /**
       * optional uint32 assist_player2 = 33;
       */
      public boolean hasAssistPlayer2() {
        return ((bitField1_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public int getAssistPlayer2() {
        return assistPlayer2_;
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public Builder setAssistPlayer2(int value) {
        bitField1_ |= 0x00000001;
        assistPlayer2_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player2 = 33;
       */
      public Builder clearAssistPlayer2() {
        bitField1_ = (bitField1_ & ~0x00000001);
        assistPlayer2_ = 0;
        onChanged();
        return this;
      }

      private int assistPlayer3_ ;
      /**
       * optional uint32 assist_player3 = 34;
       */
      public boolean hasAssistPlayer3() {
        return ((bitField1_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public int getAssistPlayer3() {
        return assistPlayer3_;
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public Builder setAssistPlayer3(int value) {
        bitField1_ |= 0x00000002;
        assistPlayer3_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 assist_player3 = 34;
       */
      public Builder clearAssistPlayer3() {
        bitField1_ = (bitField1_ & ~0x00000002);
        assistPlayer3_ = 0;
        onChanged();
        return this;
      }

      private int stackCount_ ;
      /**
       * optional uint32 stack_count = 35;
       */
      public boolean hasStackCount() {
        return ((bitField1_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public int getStackCount() {
        return stackCount_;
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public Builder setStackCount(int value) {
        bitField1_ |= 0x00000004;
        stackCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 stack_count = 35;
       */
      public Builder clearStackCount() {
        bitField1_ = (bitField1_ & ~0x00000004);
        stackCount_ = 0;
        onChanged();
        return this;
      }

      private boolean hiddenModifier_ ;
      /**
       * optional bool hidden_modifier = 36;
       */
      public boolean hasHiddenModifier() {
        return ((bitField1_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public boolean getHiddenModifier() {
        return hiddenModifier_;
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public Builder setHiddenModifier(boolean value) {
        bitField1_ |= 0x00000008;
        hiddenModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool hidden_modifier = 36;
       */
      public Builder clearHiddenModifier() {
        bitField1_ = (bitField1_ & ~0x00000008);
        hiddenModifier_ = false;
        onChanged();
        return this;
      }

      private boolean isTargetBuilding_ ;
      /**
       * optional bool is_target_building = 37;
       */
      public boolean hasIsTargetBuilding() {
        return ((bitField1_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool is_target_building = 37;
       */
      public boolean getIsTargetBuilding() {
        return isTargetBuilding_;
      }
      /**
       * optional bool is_target_building = 37;
       */
      public Builder setIsTargetBuilding(boolean value) {
        bitField1_ |= 0x00000010;
        isTargetBuilding_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_target_building = 37;
       */
      public Builder clearIsTargetBuilding() {
        bitField1_ = (bitField1_ & ~0x00000010);
        isTargetBuilding_ = false;
        onChanged();
        return this;
      }

      private int neutralCampType_ ;
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public boolean hasNeutralCampType() {
        return ((bitField1_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public int getNeutralCampType() {
        return neutralCampType_;
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public Builder setNeutralCampType(int value) {
        bitField1_ |= 0x00000020;
        neutralCampType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 neutral_camp_type = 38;
       */
      public Builder clearNeutralCampType() {
        bitField1_ = (bitField1_ & ~0x00000020);
        neutralCampType_ = 0;
        onChanged();
        return this;
      }

      private int runeType_ ;
      /**
       * optional uint32 rune_type = 39;
       */
      public boolean hasRuneType() {
        return ((bitField1_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public int getRuneType() {
        return runeType_;
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public Builder setRuneType(int value) {
        bitField1_ |= 0x00000040;
        runeType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 rune_type = 39;
       */
      public Builder clearRuneType() {
        bitField1_ = (bitField1_ & ~0x00000040);
        runeType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List assistPlayers_ = java.util.Collections.emptyList();
      private void ensureAssistPlayersIsMutable() {
        if (!((bitField1_ & 0x00000080) == 0x00000080)) {
          assistPlayers_ = new java.util.ArrayList(assistPlayers_);
          bitField1_ |= 0x00000080;
         }
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public java.util.List
          getAssistPlayersList() {
        return java.util.Collections.unmodifiableList(assistPlayers_);
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public int getAssistPlayersCount() {
        return assistPlayers_.size();
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public int getAssistPlayers(int index) {
        return assistPlayers_.get(index);
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public Builder setAssistPlayers(
          int index, int value) {
        ensureAssistPlayersIsMutable();
        assistPlayers_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public Builder addAssistPlayers(int value) {
        ensureAssistPlayersIsMutable();
        assistPlayers_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public Builder addAllAssistPlayers(
          java.lang.Iterable values) {
        ensureAssistPlayersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, assistPlayers_);
        onChanged();
        return this;
      }
      /**
       * repeated int32 assist_players = 40;
       */
      public Builder clearAssistPlayers() {
        assistPlayers_ = java.util.Collections.emptyList();
        bitField1_ = (bitField1_ & ~0x00000080);
        onChanged();
        return this;
      }

      private boolean isHealSave_ ;
      /**
       * optional bool is_heal_save = 41;
       */
      public boolean hasIsHealSave() {
        return ((bitField1_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public boolean getIsHealSave() {
        return isHealSave_;
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public Builder setIsHealSave(boolean value) {
        bitField1_ |= 0x00000100;
        isHealSave_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_heal_save = 41;
       */
      public Builder clearIsHealSave() {
        bitField1_ = (bitField1_ & ~0x00000100);
        isHealSave_ = false;
        onChanged();
        return this;
      }

      private boolean isUltimateAbility_ ;
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public boolean hasIsUltimateAbility() {
        return ((bitField1_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public boolean getIsUltimateAbility() {
        return isUltimateAbility_;
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public Builder setIsUltimateAbility(boolean value) {
        bitField1_ |= 0x00000200;
        isUltimateAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool is_ultimate_ability = 42;
       */
      public Builder clearIsUltimateAbility() {
        bitField1_ = (bitField1_ & ~0x00000200);
        isUltimateAbility_ = false;
        onChanged();
        return this;
      }

      private int attackerHeroLevel_ ;
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public boolean hasAttackerHeroLevel() {
        return ((bitField1_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public int getAttackerHeroLevel() {
        return attackerHeroLevel_;
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public Builder setAttackerHeroLevel(int value) {
        bitField1_ |= 0x00000400;
        attackerHeroLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 attacker_hero_level = 43;
       */
      public Builder clearAttackerHeroLevel() {
        bitField1_ = (bitField1_ & ~0x00000400);
        attackerHeroLevel_ = 0;
        onChanged();
        return this;
      }

      private int targetHeroLevel_ ;
      /**
       * optional uint32 target_hero_level = 44;
       */
      public boolean hasTargetHeroLevel() {
        return ((bitField1_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public int getTargetHeroLevel() {
        return targetHeroLevel_;
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public Builder setTargetHeroLevel(int value) {
        bitField1_ |= 0x00000800;
        targetHeroLevel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 target_hero_level = 44;
       */
      public Builder clearTargetHeroLevel() {
        bitField1_ = (bitField1_ & ~0x00000800);
        targetHeroLevel_ = 0;
        onChanged();
        return this;
      }

      private int xpm_ ;
      /**
       * optional uint32 xpm = 45;
       */
      public boolean hasXpm() {
        return ((bitField1_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional uint32 xpm = 45;
       */
      public int getXpm() {
        return xpm_;
      }
      /**
       * optional uint32 xpm = 45;
       */
      public Builder setXpm(int value) {
        bitField1_ |= 0x00001000;
        xpm_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 xpm = 45;
       */
      public Builder clearXpm() {
        bitField1_ = (bitField1_ & ~0x00001000);
        xpm_ = 0;
        onChanged();
        return this;
      }

      private int gpm_ ;
      /**
       * optional uint32 gpm = 46;
       */
      public boolean hasGpm() {
        return ((bitField1_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional uint32 gpm = 46;
       */
      public int getGpm() {
        return gpm_;
      }
      /**
       * optional uint32 gpm = 46;
       */
      public Builder setGpm(int value) {
        bitField1_ |= 0x00002000;
        gpm_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 gpm = 46;
       */
      public Builder clearGpm() {
        bitField1_ = (bitField1_ & ~0x00002000);
        gpm_ = 0;
        onChanged();
        return this;
      }

      private int eventLocation_ ;
      /**
       * optional uint32 event_location = 47;
       */
      public boolean hasEventLocation() {
        return ((bitField1_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional uint32 event_location = 47;
       */
      public int getEventLocation() {
        return eventLocation_;
      }
      /**
       * optional uint32 event_location = 47;
       */
      public Builder setEventLocation(int value) {
        bitField1_ |= 0x00004000;
        eventLocation_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 event_location = 47;
       */
      public Builder clearEventLocation() {
        bitField1_ = (bitField1_ & ~0x00004000);
        eventLocation_ = 0;
        onChanged();
        return this;
      }

      private boolean targetIsSelf_ ;
      /**
       * optional bool target_is_self = 48;
       */
      public boolean hasTargetIsSelf() {
        return ((bitField1_ & 0x00008000) == 0x00008000);
      }
      /**
       * optional bool target_is_self = 48;
       */
      public boolean getTargetIsSelf() {
        return targetIsSelf_;
      }
      /**
       * optional bool target_is_self = 48;
       */
      public Builder setTargetIsSelf(boolean value) {
        bitField1_ |= 0x00008000;
        targetIsSelf_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool target_is_self = 48;
       */
      public Builder clearTargetIsSelf() {
        bitField1_ = (bitField1_ & ~0x00008000);
        targetIsSelf_ = false;
        onChanged();
        return this;
      }

      private int damageType_ ;
      /**
       * optional uint32 damage_type = 49;
       */
      public boolean hasDamageType() {
        return ((bitField1_ & 0x00010000) == 0x00010000);
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public int getDamageType() {
        return damageType_;
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public Builder setDamageType(int value) {
        bitField1_ |= 0x00010000;
        damageType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_type = 49;
       */
      public Builder clearDamageType() {
        bitField1_ = (bitField1_ & ~0x00010000);
        damageType_ = 0;
        onChanged();
        return this;
      }

      private boolean invisibilityModifier_ ;
      /**
       * optional bool invisibility_modifier = 50;
       */
      public boolean hasInvisibilityModifier() {
        return ((bitField1_ & 0x00020000) == 0x00020000);
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public boolean getInvisibilityModifier() {
        return invisibilityModifier_;
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public Builder setInvisibilityModifier(boolean value) {
        bitField1_ |= 0x00020000;
        invisibilityModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool invisibility_modifier = 50;
       */
      public Builder clearInvisibilityModifier() {
        bitField1_ = (bitField1_ & ~0x00020000);
        invisibilityModifier_ = false;
        onChanged();
        return this;
      }

      private int damageCategory_ ;
      /**
       * optional uint32 damage_category = 51;
       */
      public boolean hasDamageCategory() {
        return ((bitField1_ & 0x00040000) == 0x00040000);
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public int getDamageCategory() {
        return damageCategory_;
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public Builder setDamageCategory(int value) {
        bitField1_ |= 0x00040000;
        damageCategory_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 damage_category = 51;
       */
      public Builder clearDamageCategory() {
        bitField1_ = (bitField1_ & ~0x00040000);
        damageCategory_ = 0;
        onChanged();
        return this;
      }

      private int networth_ ;
      /**
       * optional uint32 networth = 52;
       */
      public boolean hasNetworth() {
        return ((bitField1_ & 0x00080000) == 0x00080000);
      }
      /**
       * optional uint32 networth = 52;
       */
      public int getNetworth() {
        return networth_;
      }
      /**
       * optional uint32 networth = 52;
       */
      public Builder setNetworth(int value) {
        bitField1_ |= 0x00080000;
        networth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 networth = 52;
       */
      public Builder clearNetworth() {
        bitField1_ = (bitField1_ & ~0x00080000);
        networth_ = 0;
        onChanged();
        return this;
      }

      private int buildingType_ ;
      /**
       * optional uint32 building_type = 53;
       */
      public boolean hasBuildingType() {
        return ((bitField1_ & 0x00100000) == 0x00100000);
      }
      /**
       * optional uint32 building_type = 53;
       */
      public int getBuildingType() {
        return buildingType_;
      }
      /**
       * optional uint32 building_type = 53;
       */
      public Builder setBuildingType(int value) {
        bitField1_ |= 0x00100000;
        buildingType_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 building_type = 53;
       */
      public Builder clearBuildingType() {
        bitField1_ = (bitField1_ & ~0x00100000);
        buildingType_ = 0;
        onChanged();
        return this;
      }

      private float modifierElapsedDuration_ ;
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public boolean hasModifierElapsedDuration() {
        return ((bitField1_ & 0x00200000) == 0x00200000);
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public float getModifierElapsedDuration() {
        return modifierElapsedDuration_;
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public Builder setModifierElapsedDuration(float value) {
        bitField1_ |= 0x00200000;
        modifierElapsedDuration_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float modifier_elapsed_duration = 54;
       */
      public Builder clearModifierElapsedDuration() {
        bitField1_ = (bitField1_ & ~0x00200000);
        modifierElapsedDuration_ = 0F;
        onChanged();
        return this;
      }

      private boolean silenceModifier_ ;
      /**
       * optional bool silence_modifier = 55;
       */
      public boolean hasSilenceModifier() {
        return ((bitField1_ & 0x00400000) == 0x00400000);
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public boolean getSilenceModifier() {
        return silenceModifier_;
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public Builder setSilenceModifier(boolean value) {
        bitField1_ |= 0x00400000;
        silenceModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool silence_modifier = 55;
       */
      public Builder clearSilenceModifier() {
        bitField1_ = (bitField1_ & ~0x00400000);
        silenceModifier_ = false;
        onChanged();
        return this;
      }

      private boolean healFromLifesteal_ ;
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public boolean hasHealFromLifesteal() {
        return ((bitField1_ & 0x00800000) == 0x00800000);
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public boolean getHealFromLifesteal() {
        return healFromLifesteal_;
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public Builder setHealFromLifesteal(boolean value) {
        bitField1_ |= 0x00800000;
        healFromLifesteal_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool heal_from_lifesteal = 56;
       */
      public Builder clearHealFromLifesteal() {
        bitField1_ = (bitField1_ & ~0x00800000);
        healFromLifesteal_ = false;
        onChanged();
        return this;
      }

      private boolean modifierPurged_ ;
      /**
       * optional bool modifier_purged = 57;
       */
      public boolean hasModifierPurged() {
        return ((bitField1_ & 0x01000000) == 0x01000000);
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public boolean getModifierPurged() {
        return modifierPurged_;
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public Builder setModifierPurged(boolean value) {
        bitField1_ |= 0x01000000;
        modifierPurged_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool modifier_purged = 57;
       */
      public Builder clearModifierPurged() {
        bitField1_ = (bitField1_ & ~0x01000000);
        modifierPurged_ = false;
        onChanged();
        return this;
      }

      private boolean spellEvaded_ ;
      /**
       * optional bool spell_evaded = 58;
       */
      public boolean hasSpellEvaded() {
        return ((bitField1_ & 0x02000000) == 0x02000000);
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public boolean getSpellEvaded() {
        return spellEvaded_;
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public Builder setSpellEvaded(boolean value) {
        bitField1_ |= 0x02000000;
        spellEvaded_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool spell_evaded = 58;
       */
      public Builder clearSpellEvaded() {
        bitField1_ = (bitField1_ & ~0x02000000);
        spellEvaded_ = false;
        onChanged();
        return this;
      }

      private boolean motionControllerModifier_ ;
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public boolean hasMotionControllerModifier() {
        return ((bitField1_ & 0x04000000) == 0x04000000);
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public boolean getMotionControllerModifier() {
        return motionControllerModifier_;
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public Builder setMotionControllerModifier(boolean value) {
        bitField1_ |= 0x04000000;
        motionControllerModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool motion_controller_modifier = 59;
       */
      public Builder clearMotionControllerModifier() {
        bitField1_ = (bitField1_ & ~0x04000000);
        motionControllerModifier_ = false;
        onChanged();
        return this;
      }

      private boolean longRangeKill_ ;
      /**
       * optional bool long_range_kill = 60;
       */
      public boolean hasLongRangeKill() {
        return ((bitField1_ & 0x08000000) == 0x08000000);
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public boolean getLongRangeKill() {
        return longRangeKill_;
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public Builder setLongRangeKill(boolean value) {
        bitField1_ |= 0x08000000;
        longRangeKill_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool long_range_kill = 60;
       */
      public Builder clearLongRangeKill() {
        bitField1_ = (bitField1_ & ~0x08000000);
        longRangeKill_ = false;
        onChanged();
        return this;
      }

      private int modifierPurgeAbility_ ;
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public boolean hasModifierPurgeAbility() {
        return ((bitField1_ & 0x10000000) == 0x10000000);
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public int getModifierPurgeAbility() {
        return modifierPurgeAbility_;
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public Builder setModifierPurgeAbility(int value) {
        bitField1_ |= 0x10000000;
        modifierPurgeAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_purge_ability = 61;
       */
      public Builder clearModifierPurgeAbility() {
        bitField1_ = (bitField1_ & ~0x10000000);
        modifierPurgeAbility_ = 0;
        onChanged();
        return this;
      }

      private int modifierPurgeNpc_ ;
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public boolean hasModifierPurgeNpc() {
        return ((bitField1_ & 0x20000000) == 0x20000000);
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public int getModifierPurgeNpc() {
        return modifierPurgeNpc_;
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public Builder setModifierPurgeNpc(int value) {
        bitField1_ |= 0x20000000;
        modifierPurgeNpc_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_purge_npc = 62;
       */
      public Builder clearModifierPurgeNpc() {
        bitField1_ = (bitField1_ & ~0x20000000);
        modifierPurgeNpc_ = 0;
        onChanged();
        return this;
      }

      private boolean rootModifier_ ;
      /**
       * optional bool root_modifier = 63;
       */
      public boolean hasRootModifier() {
        return ((bitField1_ & 0x40000000) == 0x40000000);
      }
      /**
       * optional bool root_modifier = 63;
       */
      public boolean getRootModifier() {
        return rootModifier_;
      }
      /**
       * optional bool root_modifier = 63;
       */
      public Builder setRootModifier(boolean value) {
        bitField1_ |= 0x40000000;
        rootModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool root_modifier = 63;
       */
      public Builder clearRootModifier() {
        bitField1_ = (bitField1_ & ~0x40000000);
        rootModifier_ = false;
        onChanged();
        return this;
      }

      private int totalUnitDeathCount_ ;
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public boolean hasTotalUnitDeathCount() {
        return ((bitField1_ & 0x80000000) == 0x80000000);
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public int getTotalUnitDeathCount() {
        return totalUnitDeathCount_;
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public Builder setTotalUnitDeathCount(int value) {
        bitField1_ |= 0x80000000;
        totalUnitDeathCount_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 total_unit_death_count = 64;
       */
      public Builder clearTotalUnitDeathCount() {
        bitField1_ = (bitField1_ & ~0x80000000);
        totalUnitDeathCount_ = 0;
        onChanged();
        return this;
      }

      private boolean auraModifier_ ;
      /**
       * optional bool aura_modifier = 65;
       */
      public boolean hasAuraModifier() {
        return ((bitField2_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public boolean getAuraModifier() {
        return auraModifier_;
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public Builder setAuraModifier(boolean value) {
        bitField2_ |= 0x00000001;
        auraModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool aura_modifier = 65;
       */
      public Builder clearAuraModifier() {
        bitField2_ = (bitField2_ & ~0x00000001);
        auraModifier_ = false;
        onChanged();
        return this;
      }

      private boolean armorDebuffModifier_ ;
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public boolean hasArmorDebuffModifier() {
        return ((bitField2_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public boolean getArmorDebuffModifier() {
        return armorDebuffModifier_;
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public Builder setArmorDebuffModifier(boolean value) {
        bitField2_ |= 0x00000002;
        armorDebuffModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool armor_debuff_modifier = 66;
       */
      public Builder clearArmorDebuffModifier() {
        bitField2_ = (bitField2_ & ~0x00000002);
        armorDebuffModifier_ = false;
        onChanged();
        return this;
      }

      private boolean noPhysicalDamageModifier_ ;
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public boolean hasNoPhysicalDamageModifier() {
        return ((bitField2_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public boolean getNoPhysicalDamageModifier() {
        return noPhysicalDamageModifier_;
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public Builder setNoPhysicalDamageModifier(boolean value) {
        bitField2_ |= 0x00000004;
        noPhysicalDamageModifier_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool no_physical_damage_modifier = 67;
       */
      public Builder clearNoPhysicalDamageModifier() {
        bitField2_ = (bitField2_ & ~0x00000004);
        noPhysicalDamageModifier_ = false;
        onChanged();
        return this;
      }

      private int modifierAbility_ ;
      /**
       * optional uint32 modifier_ability = 68;
       */
      public boolean hasModifierAbility() {
        return ((bitField2_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public int getModifierAbility() {
        return modifierAbility_;
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public Builder setModifierAbility(int value) {
        bitField2_ |= 0x00000008;
        modifierAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 modifier_ability = 68;
       */
      public Builder clearModifierAbility() {
        bitField2_ = (bitField2_ & ~0x00000008);
        modifierAbility_ = 0;
        onChanged();
        return this;
      }

      private boolean modifierHidden_ ;
      /**
       * optional bool modifier_hidden = 69;
       */
      public boolean hasModifierHidden() {
        return ((bitField2_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public boolean getModifierHidden() {
        return modifierHidden_;
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public Builder setModifierHidden(boolean value) {
        bitField2_ |= 0x00000010;
        modifierHidden_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool modifier_hidden = 69;
       */
      public Builder clearModifierHidden() {
        bitField2_ = (bitField2_ & ~0x00000010);
        modifierHidden_ = false;
        onChanged();
        return this;
      }

      private boolean inflictorIsStolenAbility_ ;
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public boolean hasInflictorIsStolenAbility() {
        return ((bitField2_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public boolean getInflictorIsStolenAbility() {
        return inflictorIsStolenAbility_;
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public Builder setInflictorIsStolenAbility(boolean value) {
        bitField2_ |= 0x00000020;
        inflictorIsStolenAbility_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool inflictor_is_stolen_ability = 70;
       */
      public Builder clearInflictorIsStolenAbility() {
        bitField2_ = (bitField2_ & ~0x00000020);
        inflictorIsStolenAbility_ = false;
        onChanged();
        return this;
      }

      private int killEaterEvent_ ;
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public boolean hasKillEaterEvent() {
        return ((bitField2_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public int getKillEaterEvent() {
        return killEaterEvent_;
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public Builder setKillEaterEvent(int value) {
        bitField2_ |= 0x00000040;
        killEaterEvent_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 kill_eater_event = 71;
       */
      public Builder clearKillEaterEvent() {
        bitField2_ = (bitField2_ & ~0x00000040);
        killEaterEvent_ = 0;
        onChanged();
        return this;
      }

      private int unitStatusLabel_ ;
      /**
       * optional uint32 unit_status_label = 72;
       */
      public boolean hasUnitStatusLabel() {
        return ((bitField2_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public int getUnitStatusLabel() {
        return unitStatusLabel_;
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public Builder setUnitStatusLabel(int value) {
        bitField2_ |= 0x00000080;
        unitStatusLabel_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 unit_status_label = 72;
       */
      public Builder clearUnitStatusLabel() {
        bitField2_ = (bitField2_ & ~0x00000080);
        unitStatusLabel_ = 0;
        onChanged();
        return this;
      }

      private boolean spellGeneratedAttack_ ;
      /**
       * optional bool spell_generated_attack = 73;
       */
      public boolean hasSpellGeneratedAttack() {
        return ((bitField2_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public boolean getSpellGeneratedAttack() {
        return spellGeneratedAttack_;
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public Builder setSpellGeneratedAttack(boolean value) {
        bitField2_ |= 0x00000100;
        spellGeneratedAttack_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool spell_generated_attack = 73;
       */
      public Builder clearSpellGeneratedAttack() {
        bitField2_ = (bitField2_ & ~0x00000100);
        spellGeneratedAttack_ = false;
        onChanged();
        return this;
      }

      private boolean atNightTime_ ;
      /**
       * optional bool at_night_time = 74;
       */
      public boolean hasAtNightTime() {
        return ((bitField2_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional bool at_night_time = 74;
       */
      public boolean getAtNightTime() {
        return atNightTime_;
      }
      /**
       * optional bool at_night_time = 74;
       */
      public Builder setAtNightTime(boolean value) {
        bitField2_ |= 0x00000200;
        atNightTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool at_night_time = 74;
       */
      public Builder clearAtNightTime() {
        bitField2_ = (bitField2_ & ~0x00000200);
        atNightTime_ = false;
        onChanged();
        return this;
      }

      private boolean attackerHasScepter_ ;
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public boolean hasAttackerHasScepter() {
        return ((bitField2_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public boolean getAttackerHasScepter() {
        return attackerHasScepter_;
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public Builder setAttackerHasScepter(boolean value) {
        bitField2_ |= 0x00000400;
        attackerHasScepter_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool attacker_has_scepter = 75;
       */
      public Builder clearAttackerHasScepter() {
        bitField2_ = (bitField2_ & ~0x00000400);
        attackerHasScepter_ = false;
        onChanged();
        return this;
      }

      private int neutralCampTeam_ ;
      /**
       * optional uint32 neutral_camp_team = 76;
       */
      public boolean hasNeutralCampTeam() {
        return ((bitField2_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional uint32 neutral_camp_team = 76;
       */
      public int getNeutralCampTeam() {
        return neutralCampTeam_;
      }
      /**
       * optional uint32 neutral_camp_team = 76;
       */
      public Builder setNeutralCampTeam(int value) {
        bitField2_ |= 0x00000800;
        neutralCampTeam_ = value;
        onChanged();
        return this;
      }
      /**
       * optional uint32 neutral_camp_team = 76;
       */
      public Builder clearNeutralCampTeam() {
        bitField2_ = (bitField2_ & ~0x00000800);
        neutralCampTeam_ = 0;
        onChanged();
        return this;
      }

      private float regeneratedHealth_ ;
      /**
       * optional float regenerated_health = 77;
       */
      public boolean hasRegeneratedHealth() {
        return ((bitField2_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional float regenerated_health = 77;
       */
      public float getRegeneratedHealth() {
        return regeneratedHealth_;
      }
      /**
       * optional float regenerated_health = 77;
       */
      public Builder setRegeneratedHealth(float value) {
        bitField2_ |= 0x00001000;
        regeneratedHealth_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float regenerated_health = 77;
       */
      public Builder clearRegeneratedHealth() {
        bitField2_ = (bitField2_ & ~0x00001000);
        regeneratedHealth_ = 0F;
        onChanged();
        return this;
      }

      private boolean willReincarnate_ ;
      /**
       * optional bool will_reincarnate = 78;
       */
      public boolean hasWillReincarnate() {
        return ((bitField2_ & 0x00002000) == 0x00002000);
      }
      /**
       * optional bool will_reincarnate = 78;
       */
      public boolean getWillReincarnate() {
        return willReincarnate_;
      }
      /**
       * optional bool will_reincarnate = 78;
       */
      public Builder setWillReincarnate(boolean value) {
        bitField2_ |= 0x00002000;
        willReincarnate_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool will_reincarnate = 78;
       */
      public Builder clearWillReincarnate() {
        bitField2_ = (bitField2_ & ~0x00002000);
        willReincarnate_ = false;
        onChanged();
        return this;
      }

      private boolean usesCharges_ ;
      /**
       * optional bool uses_charges = 79;
       */
      public boolean hasUsesCharges() {
        return ((bitField2_ & 0x00004000) == 0x00004000);
      }
      /**
       * optional bool uses_charges = 79;
       */
      public boolean getUsesCharges() {
        return usesCharges_;
      }
      /**
       * optional bool uses_charges = 79;
       */
      public Builder setUsesCharges(boolean value) {
        bitField2_ |= 0x00004000;
        usesCharges_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool uses_charges = 79;
       */
      public Builder clearUsesCharges() {
        bitField2_ = (bitField2_ & ~0x00004000);
        usesCharges_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CMsgDOTACombatLogEntry)
    }

    static {
      defaultInstance = new CMsgDOTACombatLogEntry(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CMsgDOTACombatLogEntry)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SwapVerify_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BotChat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ProjectileParticleCPData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightColor_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_LocationPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PingConfirmation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ModifierAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HPManaAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_NeutralCampAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GlyphAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RadarAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MinimapEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MapLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_InvalidCommand_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HudError_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HudError_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SharedCooldown_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HalloweenDrops_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PredictionResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAResponseQuerySerialized_Fact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTASpeechMatchOnClient_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemPurchased_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemSold_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ItemFound_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OverheadEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WorldLine_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatWheel_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendStatPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_Projectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilityPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PlayerMMR_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AbilitySteal_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_StatsKillDetails_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgHeroAbilityStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgHeroAbilityStat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerPlayerStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgCombatAnalyzerStats_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ProjectionAbility_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ProjectionEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_XPAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_KillcamDamageTaken_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RollDiceResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_FlipCoinResult_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DamageReport_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_SalutePlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GiftPlayer_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GiftPlayer_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_TipAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ShovelUnearth_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AllStarEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DebugChallenge_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OutpostCaptured_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PauseMinigameData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HotPotato_Created_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MutedPlayers_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ContextualTip_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_ChatMessage_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RockPaperScissorsStarted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_RockPaperScissorsFinished_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DuelOpponentKilled_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DuelAccepted_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DuelAccepted_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_DuelRequested_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_DuelRequested_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_PlayerDraftPick_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_FacetPing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_FacetPing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDOTAUserMsg_InnatePing_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDOTAUserMsg_InnatePing_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CMsgDOTACombatLogEntry_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\027dota_usermessages.proto\032\035networkbasety" +
      "pes-common.proto\032\033networkbasetypes-demo." +
      "proto\032\031dota_commonmessages.proto\",\n\027CDOT" +
      "AUserMsg_SwapVerify\022\021\n\tplayer_id\030\001 \001(\005\"\217" +
      "\002\n\026CDOTAUserMsg_ChatEvent\0226\n\004type\030\001 \001(\0162" +
      "\022.DOTA_CHAT_MESSAGE:\024CHAT_MESSAGE_INVALI" +
      "D\022\r\n\005value\030\002 \001(\r\022\026\n\nplayerid_1\030\003 \001(\021:\002-1" +
      "\022\026\n\nplayerid_2\030\004 \001(\021:\002-1\022\026\n\nplayerid_3\030\005" +
      " \001(\021:\002-1\022\026\n\nplayerid_4\030\006 \001(\021:\002-1\022\026\n\nplay" +
      "erid_5\030\007 \001(\021:\002-1\022\026\n\nplayerid_6\030\010 \001(\021:\002-1",
      "\022\016\n\006value2\030\t \001(\r\022\016\n\006value3\030\n \001(\r\"m\n\024CDOT" +
      "AUserMsg_BotChat\022\021\n\tplayer_id\030\001 \001(\005\022\016\n\006f" +
      "ormat\030\002 \001(\t\022\017\n\007message\030\003 \001(\t\022\016\n\006target\030\004" +
      " \001(\t\022\021\n\tteam_only\030\005 \001(\010\"\237\001\n\036CDOTAUserMsg" +
      "_CombatLogBulkData\022/\n\016combat_entries\030\001 \003" +
      "(\0132\027.CMsgDOTACombatLogEntry\022\021\n\ttimestamp" +
      "\030\002 \001(\002\022\020\n\010duration\030\003 \001(\002\022\021\n\tplayer_id\030\004 " +
      "\001(\005\022\024\n\014request_time\030\005 \001(\002\"[\n%CDOTAUserMs" +
      "g_ProjectileParticleCPData\022\025\n\rcontrol_po" +
      "int\030\001 \001(\005\022\033\n\006vector\030\002 \001(\0132\013.CMsgVector\"\227",
      "\002\n\034CDOTAUserMsg_MiniKillCamInfo\0229\n\tattac" +
      "kers\030\001 \003(\0132&.CDOTAUserMsg_MiniKillCamInf" +
      "o.Attacker\032\273\001\n\010Attacker\022\020\n\010attacker\030\001 \001(" +
      "\r\022\024\n\014total_damage\030\002 \001(\005\022A\n\tabilities\030\003 \003" +
      "(\0132..CDOTAUserMsg_MiniKillCamInfo.Attack" +
      "er.Ability\022\025\n\rattacker_name\030\004 \001(\t\032-\n\007Abi" +
      "lity\022\022\n\nability_id\030\001 \001(\005\022\016\n\006damage\030\002 \001(\005" +
      "\"@\n\035CDOTAUserMsg_GlobalLightColor\022\r\n\005col" +
      "or\030\001 \001(\r\022\020\n\010duration\030\002 \001(\002\"U\n!CDOTAUserM" +
      "sg_GlobalLightDirection\022\036\n\tdirection\030\001 \001",
      "(\0132\013.CMsgVector\022\020\n\010duration\030\002 \001(\002\"]\n\031CDO" +
      "TAUserMsg_LocationPing\022\021\n\tplayer_id\030\001 \001(" +
      "\005\022-\n\rlocation_ping\030\002 \001(\0132\026.CDOTAMsg_Loca" +
      "tionPing\"\215\001\n\035CDOTAUserMsg_PingConfirmati" +
      "on\022$\n\034player_id_of_original_pinger\030\001 \001(\005" +
      "\022\024\n\014entity_index\030\002 \001(\r\022\021\n\ticon_type\030\003 \001(" +
      "\r\022\035\n\010location\030\004 \001(\0132\013.CMsgVector\"T\n\026CDOT" +
      "AUserMsg_ItemAlert\022\021\n\tplayer_id\030\001 \001(\005\022\'\n" +
      "\nitem_alert\030\002 \001(\0132\023.CDOTAMsg_ItemAlert\"\341" +
      "\001\n\033CDOTAUserMsg_EnemyItemAlert\022\021\n\tplayer",
      "_id\030\001 \001(\005\022\030\n\020target_player_id\030\002 \001(\005\022\027\n\017i" +
      "tem_ability_id\030\003 \001(\005\022\025\n\trune_type\030\004 \001(\005:" +
      "\002-1\022\021\n\tentity_id\030\005 \001(\005\022\026\n\nitem_level\030\006 \001" +
      "(\005:\002-1\022\033\n\017primary_charges\030\007 \001(\005:\002-1\022\035\n\021s" +
      "econdary_charges\030\010 \001(\005:\002-1\"\237\001\n\032CDOTAUser" +
      "Msg_ModifierAlert\022\021\n\tplayer_id\030\001 \001(\005\022\022\n\n" +
      "class_name\030\002 \001(\t\022\023\n\013stack_count\030\003 \001(\r\022\021\n" +
      "\tis_debuff\030\004 \001(\010\022\027\n\017target_entindex\030\005 \001(" +
      "\005\022\031\n\021seconds_remaining\030\006 \001(\002\"_\n\030CDOTAUse" +
      "rMsg_HPManaAlert\022\021\n\tplayer_id\030\001 \001(\005\022\027\n\017t",
      "arget_entindex\030\002 \001(\005\022\027\n\017show_raw_values\030" +
      "\003 \001(\010\"\273\001\n\035CDOTAUserMsg_NeutralCampAlert\022" +
      "\021\n\tplayer_id\030\001 \001(\005\022\030\n\020spawner_entindex\030\002" +
      " \001(\005\022\025\n\runit_entindex\030\003 \001(\005\022\023\n\013stack_cou" +
      "nt\030\004 \001(\005\022\021\n\tcamp_type\030\005 \001(\005\022\025\n\rstack_req" +
      "uest\030\006 \001(\010\022\027\n\017stack_intention\030\007 \001(\010\">\n\027C" +
      "DOTAUserMsg_GlyphAlert\022\021\n\tplayer_id\030\001 \001(" +
      "\005\022\020\n\010negative\030\002 \001(\010\">\n\027CDOTAUserMsg_Rada" +
      "rAlert\022\021\n\tplayer_id\030\001 \001(\005\022\020\n\010negative\030\002 " +
      "\001(\010\"\202\001\n\036CDOTAUserMsg_WillPurchaseAlert\022\027",
      "\n\017item_ability_id\030\001 \001(\005\022\021\n\tplayer_id\030\002 \001" +
      "(\005\022\026\n\016gold_remaining\030\003 \001(\r\022\034\n\024suggestion" +
      "_player_id\030\004 \001(\005\"o\n\037CDOTAUserMsg_EmptyTe" +
      "leportAlert\022\030\n\020source_player_id\030\001 \001(\005\022\030\n" +
      "\020target_player_id\030\002 \001(\005\022\030\n\020cooldown_seco" +
      "nds\030\003 \001(\005\"l\n#CDOTAUserMsg_MarsArenaOfBlo" +
      "odAttack\022\026\n\016source_ehandle\030\001 \001(\r\022\026\n\016targ" +
      "et_ehandle\030\002 \001(\r\022\025\n\rwarrior_index\030\003 \001(\005\"" +
      "Y\n\037CDOTAEntityMsg_InvokerSpellCast\022\037\n\nen" +
      "tity_msg\030\001 \001(\0132\013.CEntityMsg\022\025\n\rcast_acti",
      "vity\030\002 \001(\005\"7\n\036CDOTAUserMsg_BuyBackStateA" +
      "lert\022\025\n\tplayer_id\030\001 \001(\005:\002-1\"\220\001\n\032CDOTAUse" +
      "rMsg_QuickBuyAlert\022\021\n\tplayer_id\030\001 \001(\005\022\027\n" +
      "\017item_ability_id\030\002 \001(\005\022\021\n\tgold_cost\030\003 \001(" +
      "\005\022\035\n\025item_cooldown_seconds\030\004 \001(\005\022\024\n\014show" +
      "_buyback\030\005 \001(\010\"\227\002\n\037CDOTAUserMsg_CourierK" +
      "illedAlert\022\014\n\004team\030\001 \001(\r\022\022\n\ngold_value\030\002" +
      " \001(\r\022\025\n\rentity_handle\030\003 \001(\005\022\021\n\ttimestamp" +
      "\030\004 \001(\005\022=\n\nlost_items\030\005 \003(\0132).CDOTAUserMs" +
      "g_CourierKilledAlert.LostItem\022\030\n\020killer_",
      "player_id\030\006 \001(\005\022\030\n\020owning_player_id\030\007 \001(" +
      "\005\0325\n\010LostItem\022\027\n\017item_ability_id\030\001 \001(\005\022\020" +
      "\n\010quantity\030\002 \001(\r\"\214\001\n\031CDOTAUserMsg_Minima" +
      "pEvent\022\022\n\nevent_type\030\001 \001(\005\022\025\n\rentity_han" +
      "dle\030\002 \001(\005\022\t\n\001x\030\003 \001(\005\022\t\n\001y\030\004 \001(\005\022\020\n\010durat" +
      "ion\030\005 \001(\005\022\034\n\024target_entity_handle\030\006 \001(\r\"" +
      "M\n\024CDOTAUserMsg_MapLine\022\021\n\tplayer_id\030\001 \001" +
      "(\005\022\"\n\007mapline\030\002 \001(\0132\021.CDOTAMsg_MapLine\"\200" +
      "\003\n#CDOTAUserMsg_CreateLinearProjectile\022\033" +
      "\n\006origin\030\001 \001(\0132\013.CMsgVector\022\037\n\010velocity\030",
      "\002 \001(\0132\r.CMsgVector2D\022\017\n\007latency\030\003 \001(\005\022\020\n" +
      "\010entindex\030\004 \001(\005\022\026\n\016particle_index\030\005 \001(\004\022" +
      "\016\n\006handle\030\006 \001(\005\022#\n\014acceleration\030\007 \001(\0132\r." +
      "CMsgVector2D\022\021\n\tmax_speed\030\010 \001(\002\022\022\n\nfow_r" +
      "adius\030\t \001(\002\022\031\n\021sticky_fow_reveal\030\n \001(\010\022\020" +
      "\n\010distance\030\013 \001(\002\022\025\n\rcolorgemcolor\030\014 \001(\007\022" +
      "@\n\020particle_cp_data\030\r \003(\0132&.CDOTAUserMsg" +
      "_ProjectileParticleCPData\"6\n$CDOTAUserMs" +
      "g_DestroyLinearProjectile\022\016\n\006handle\030\001 \001(" +
      "\005\"O\n%CDOTAUserMsg_DodgeTrackingProjectil",
      "es\022\020\n\010entindex\030\001 \002(\005\022\024\n\014attacks_only\030\002 \001" +
      "(\010\"_\n!CDOTAUserMsg_SpectatorPlayerClick\022" +
      "\020\n\010entindex\030\001 \002(\005\022\022\n\norder_type\030\002 \001(\005\022\024\n" +
      "\014target_index\030\003 \001(\005\"\335\001\n&CDOTAUserMsg_Spe" +
      "ctatorPlayerUnitOrders\022\020\n\010entindex\030\001 \001(\005" +
      "\022\022\n\norder_type\030\002 \001(\005\022\r\n\005units\030\003 \003(\005\022\024\n\014t" +
      "arget_index\030\004 \001(\005\022\022\n\nability_id\030\005 \001(\005\022\035\n" +
      "\010position\030\006 \001(\0132\013.CMsgVector\022\r\n\005queue\030\007 " +
      "\001(\010\022\027\n\017sequence_number\030\010 \001(\005\022\r\n\005flags\030\t " +
      "\001(\r\"s\n\035CDOTAUserMsg_NevermoreRequiem\022\025\n\r",
      "entity_handle\030\001 \001(\005\022\r\n\005lines\030\002 \001(\005\022\033\n\006or" +
      "igin\030\003 \001(\0132\013.CMsgVector\022\017\n\007reverse\030\004 \001(\010" +
      "\"G\n\033CDOTAUserMsg_InvalidCommand\022\017\n\007messa" +
      "ge\030\001 \001(\t\022\027\n\017sequence_number\030\002 \001(\005\"B\n\025CDO" +
      "TAUserMsg_HudError\022\020\n\010order_id\030\001 \001(\005\022\027\n\017" +
      "sequence_number\030\002 \001(\005\"c\n\033CDOTAUserMsg_Sh" +
      "aredCooldown\022\020\n\010entindex\030\001 \001(\005\022\014\n\004name\030\002" +
      " \001(\t\022\020\n\010cooldown\030\003 \001(\002\022\022\n\nname_index\030\004 \001" +
      "(\005\"X\n\033CDOTAUserMsg_HalloweenDrops\022\021\n\tite" +
      "m_defs\030\001 \003(\r\022\022\n\nplayer_ids\030\002 \003(\005\022\022\n\npriz",
      "e_list\030\003 \001(\r\"\223\003\n\035CDOTAUserMsg_Prediction" +
      "Result\022\022\n\naccount_id\030\001 \001(\r\022\020\n\010match_id\030\002" +
      " \001(\004\022\017\n\007correct\030\003 \001(\010\022>\n\013predictions\030\004 \003" +
      "(\0132).CDOTAUserMsg_PredictionResult.Predi" +
      "ction\032\372\001\n\nPrediction\022\020\n\010item_def\030\001 \001(\r\022\023" +
      "\n\013num_correct\030\002 \001(\r\022\021\n\tnum_fails\030\003 \001(\r\022X" +
      "\n\006result\030\004 \001(\01621.CDOTAUserMsg_Prediction" +
      "Result.Prediction.EResult:\025k_eResult_Ite" +
      "mGranted\022\031\n\021granted_item_defs\030\006 \003(\r\"=\n\007E" +
      "Result\022\031\n\025k_eResult_ItemGranted\020\001\022\027\n\023k_e",
      "Result_Destroyed\020\002\"\376\001\n\034CDOTAResponseQuer" +
      "ySerialized\0221\n\005facts\030\001 \003(\0132\".CDOTARespon" +
      "seQuerySerialized.Fact\032\252\001\n\004Fact\022\013\n\003key\030\001" +
      " \002(\005\022F\n\007valtype\030\002 \001(\0162,.CDOTAResponseQue" +
      "rySerialized.Fact.ValueType:\007NUMERIC\022\023\n\013" +
      "val_numeric\030\003 \001(\002\022\022\n\nval_string\030\004 \001(\t\"$\n" +
      "\tValueType\022\013\n\007NUMERIC\020\001\022\n\n\006STRING\020\002\"\220\001\n\030" +
      "CDOTASpeechMatchOnClient\022\017\n\007concept\030\001 \001(" +
      "\005\022\026\n\016recipient_type\030\002 \001(\005\0224\n\rresponseque" +
      "ry\030\003 \001(\0132\035.CDOTAResponseQuerySerialized\022",
      "\025\n\nrandomseed\030\004 \001(\017:\0010\"\213\010\n\026CDOTAUserMsg_" +
      "UnitEvent\0228\n\010msg_type\030\001 \002(\0162\024.EDotaEntit" +
      "yMessages:\020DOTA_UNIT_SPEECH\022\024\n\014entity_in" +
      "dex\030\002 \002(\005\022.\n\006speech\030\003 \001(\0132\036.CDOTAUserMsg" +
      "_UnitEvent.Speech\0227\n\013speech_mute\030\004 \001(\0132\"" +
      ".CDOTAUserMsg_UnitEvent.SpeechMute\0227\n\013ad" +
      "d_gesture\030\005 \001(\0132\".CDOTAUserMsg_UnitEvent" +
      ".AddGesture\022=\n\016remove_gesture\030\006 \001(\0132%.CD" +
      "OTAUserMsg_UnitEvent.RemoveGesture\0229\n\014bl" +
      "ood_impact\030\007 \001(\0132#.CDOTAUserMsg_UnitEven",
      "t.BloodImpact\0229\n\014fade_gesture\030\010 \001(\0132#.CD" +
      "OTAUserMsg_UnitEvent.FadeGesture\0229\n\026spee" +
      "ch_match_on_client\030\t \001(\0132\031.CDOTASpeechMa" +
      "tchOnClient\032(\n\010Interval\022\r\n\005start\030\001 \001(\002\022\r" +
      "\n\005range\030\002 \001(\002\032\256\001\n\006Speech\022\017\n\007concept\030\001 \001(" +
      "\005\022\020\n\010response\030\002 \001(\t\022\026\n\016recipient_type\030\003 " +
      "\001(\005\022\r\n\005level\030\004 \001(\005\022\027\n\010muteable\030\005 \001(\010:\005fa" +
      "lse\0222\n\010predelay\030\006 \001(\0132 .CDOTAUserMsg_Uni" +
      "tEvent.Interval\022\r\n\005flags\030\007 \001(\r\032 \n\nSpeech" +
      "Mute\022\022\n\005delay\030\001 \001(\002:\0030.5\032\213\001\n\nAddGesture\022",
      "\020\n\010activity\030\001 \001(\005\022\014\n\004slot\030\002 \001(\005\022\022\n\007fade_" +
      "in\030\003 \001(\002:\0010\022\025\n\010fade_out\030\004 \001(\002:\0030.1\022\030\n\rpl" +
      "ayback_rate\030\005 \001(\002:\0011\022\030\n\020sequence_variant" +
      "\030\006 \001(\005\032!\n\rRemoveGesture\022\020\n\010activity\030\001 \001(" +
      "\005\032@\n\013BloodImpact\022\r\n\005scale\030\001 \001(\005\022\020\n\010x_nor" +
      "mal\030\002 \001(\005\022\020\n\010y_normal\030\003 \001(\005\032\037\n\013FadeGestu" +
      "re\022\020\n\010activity\030\001 \001(\005\"5\n\032CDOTAUserMsg_Ite" +
      "mPurchased\022\027\n\017item_ability_id\030\001 \001(\005\"0\n\025C" +
      "DOTAUserMsg_ItemSold\022\027\n\017item_ability_id\030" +
      "\001 \001(\005\"j\n\026CDOTAUserMsg_ItemFound\022\016\n\006playe",
      "r\030\001 \001(\005\022\017\n\007quality\030\002 \001(\005\022\016\n\006rarity\030\003 \001(\005" +
      "\022\016\n\006method\030\004 \001(\005\022\017\n\007itemdef\030\005 \001(\r\"\305\001\n\032CD" +
      "OTAUserMsg_OverheadEvent\022?\n\014message_type" +
      "\030\001 \001(\0162\024.DOTA_OVERHEAD_ALERT:\023OVERHEAD_A" +
      "LERT_GOLD\022\r\n\005value\030\002 \001(\005\022\036\n\026target_playe" +
      "r_entindex\030\003 \001(\005\022\027\n\017target_entindex\030\004 \001(" +
      "\005\022\036\n\026source_player_entindex\030\005 \001(\005\"S\n\026CDO" +
      "TAUserMsg_WorldLine\022\021\n\tplayer_id\030\001 \001(\005\022&" +
      "\n\tworldline\030\002 \001(\0132\023.CDOTAMsg_WorldLine\"\204" +
      "\001\n\026CDOTAUserMsg_ChatWheel\022\027\n\017chat_messag",
      "e_id\030\001 \001(\r\022\021\n\tplayer_id\030\002 \001(\005\022\022\n\naccount" +
      "_id\030\003 \001(\r\022\025\n\rparam_hero_id\030\004 \001(\005\022\023\n\013emot" +
      "icon_id\030\005 \001(\r\"3\n\"CDOTAUserMsg_GamerulesS" +
      "tateChanged\022\r\n\005state\030\001 \001(\r\"[\n\032CDOTAUserM" +
      "sg_SendStatPopup\022\021\n\tplayer_id\030\001 \001(\005\022*\n\ts" +
      "tatpopup\030\002 \001(\0132\027.CDOTAMsg_SendStatPopup\"" +
      "Z\n!CDOTAUserMsg_DismissAllStatPopups\0225\n\r" +
      "dismissallmsg\030\001 \001(\0132\036.CDOTAMsg_DismissAl" +
      "lStatPopups\"\217\001\n%CDOTAUserMsg_SendRoshanS" +
      "pectatorPhase\0226\n\005phase\030\001 \001(\0162\022.DOTA_ROSH",
      "AN_PHASE:\023k_SRSP_ROSHAN_ALIVE\022\030\n\020phase_s" +
      "tart_time\030\002 \001(\005\022\024\n\014phase_length\030\003 \001(\005\"C\n" +
      "\034CDOTAUserMsg_SendRoshanPopup\022\021\n\treclaim" +
      "ed\030\001 \001(\010\022\020\n\010gametime\030\002 \001(\005\"\337\003\n\032CDOTAUser" +
      "Msg_TE_Projectile\022\016\n\006source\030\001 \001(\r\022\016\n\006tar" +
      "get\030\002 \001(\r\022\022\n\nmove_speed\030\003 \001(\005\022\031\n\021source_" +
      "attachment\030\004 \001(\005\022\036\n\026particle_system_hand" +
      "le\030\005 \001(\003\022\021\n\tdodgeable\030\006 \001(\010\022\021\n\tis_attack" +
      "\030\007 \001(\010\022\023\n\013expire_time\030\t \001(\002\022\025\n\rmaximpact" +
      "time\030\n \001(\002\022\025\n\rcolorgemcolor\030\013 \001(\007\022\023\n\013lau",
      "nch_tick\030\014 \001(\005\022\016\n\006handle\030\r \001(\005\022\037\n\ntarget" +
      "_loc\030\016 \001(\0132\013.CMsgVector\022@\n\020particle_cp_d" +
      "ata\030\017 \003(\0132&.CDOTAUserMsg_ProjectileParti" +
      "cleCPData\022)\n!additional_particle_system_" +
      "handle\030\020 \001(\003\022\033\n\023original_move_speed\030\021 \001(" +
      "\005\022\031\n\007ability\030\022 \001(\r:\01016777215\"\321\003\n\035CDOTAUs" +
      "erMsg_TE_ProjectileLoc\022\037\n\nsource_loc\030\001 \001" +
      "(\0132\013.CMsgVector\022\016\n\006target\030\002 \001(\r\022\022\n\nmove_" +
      "speed\030\003 \001(\005\022\036\n\026particle_system_handle\030\004 " +
      "\001(\003\022\021\n\tdodgeable\030\005 \001(\010\022\021\n\tis_attack\030\006 \001(",
      "\010\022\023\n\013expire_time\030\t \001(\002\022\037\n\ntarget_loc\030\n \001" +
      "(\0132\013.CMsgVector\022\025\n\rcolorgemcolor\030\013 \001(\007\022\023" +
      "\n\013launch_tick\030\014 \001(\005\022\016\n\006handle\030\r \001(\005\022\016\n\006s" +
      "ource\030\016 \001(\r\022\031\n\021source_attachment\030\017 \001(\005\022@" +
      "\n\020particle_cp_data\030\020 \003(\0132&.CDOTAUserMsg_" +
      "ProjectileParticleCPData\022)\n!additional_p" +
      "article_system_handle\030\021 \001(\003\022\033\n\023original_" +
      "move_speed\030\022 \001(\005\"3\n!CDOTAUserMsg_TE_Dest" +
      "royProjectile\022\016\n\006handle\030\001 \001(\005\"b\n\037CDOTAUs" +
      "erMsg_TE_DotaBloodImpact\022\016\n\006entity\030\001 \001(\005",
      "\022\r\n\005scale\030\002 \001(\002\022\017\n\007xnormal\030\003 \001(\002\022\017\n\007ynor" +
      "mal\030\004 \001(\002\"\350\002\n\030CDOTAUserMsg_AbilityPing\022\021" +
      "\n\tplayer_id\030\001 \001(\005\022\022\n\nability_id\030\002 \001(\005\0229\n" +
      "\004type\030\003 \001(\0162\027.DOTA_ABILITY_PING_TYPE:\022AB" +
      "ILITY_PING_READY\022\030\n\020cooldown_seconds\030\004 \001" +
      "(\r\022\r\n\005level\030\005 \001(\r\022\017\n\007passive\030\006 \001(\010\022\023\n\013ma" +
      "na_needed\030\007 \001(\r\022\021\n\tentity_id\030\010 \001(\r\022\027\n\017pr" +
      "imary_charges\030\t \001(\005\022\031\n\021secondary_charges" +
      "\030\n \001(\005\022\021\n\tcaster_id\030\013 \001(\r\022\021\n\tctrl_held\030\014" +
      " \001(\010\022\024\n\014reclaim_time\030\r \001(\002\022\030\n\014owner_enti",
      "ty\030\016 \001(\005:\002-1\"\261\001\n\035CDOTAUserMsg_TE_UnitAni" +
      "mation\022\016\n\006entity\030\001 \001(\r\022\030\n\020sequence_varia" +
      "nt\030\002 \001(\005\022\024\n\014playbackrate\030\003 \001(\002\022\021\n\tcastpo" +
      "int\030\004 \001(\002\022\014\n\004type\030\005 \001(\005\022\020\n\010activity\030\006 \001(" +
      "\005\022\035\n\025lag_compensation_time\030\007 \001(\002\"@\n CDOT" +
      "AUserMsg_TE_UnitAnimationEnd\022\016\n\006entity\030\001" +
      " \001(\005\022\014\n\004snap\030\002 \001(\010\")\n\026CDOTAUserMsg_Playe" +
      "rMMR\022\017\n\003mmr\030\001 \003(\021B\002\020\001\"Y\n\031CDOTAUserMsg_Ab" +
      "ilitySteal\022\021\n\tplayer_id\030\001 \001(\005\022\022\n\nability" +
      "_id\030\002 \001(\005\022\025\n\rability_level\030\003 \001(\r\"f\n\034CDOT",
      "AUserMsg_StatsHeroLookup\022\021\n\tplayer_id\030\001 " +
      "\001(\005\022\017\n\007hero_id\030\002 \001(\005\022\021\n\thero_name\030\003 \001(\t\022" +
      "\017\n\007persona\030\004 \001(\t\"\372\001\n\"CDOTAUserMsg_StatsH" +
      "eroPositionInfo\022\030\n\020average_position\030\001 \001(" +
      "\002\022J\n\020position_details\030\002 \003(\01320.CDOTAUserM" +
      "sg_StatsHeroPositionInfo.PositionPair\032n\n" +
      "\014PositionPair\022F\n\021position_category\030\001 \001(\016" +
      "2\027.DOTA_POSITION_CATEGORY:\022DOTA_POSITION" +
      "_NONE\022\026\n\016position_count\030\002 \001(\r\"\254\001\n!CDOTAU" +
      "serMsg_StatsPlayerKillShare\022\021\n\tplayer_id",
      "\030\001 \001(\005\022\032\n\022kill_share_percent\030\002 \001(\002\022\024\n\014pl" +
      "ayer_loc_x\030\003 \001(\002\022\024\n\014player_loc_y\030\004 \001(\002\022\026" +
      "\n\016health_percent\030\005 \001(\002\022\024\n\014mana_percent\030\006" +
      " \001(\002\"\304\001\n\035CDOTAUserMsg_StatsKillDetails\022\021" +
      "\n\tvictim_id\030\001 \001(\005\0227\n\013kill_shares\030\002 \003(\0132\"" +
      ".CDOTAUserMsg_StatsPlayerKillShare\022\026\n\016da" +
      "mage_to_kill\030\003 \001(\r\022\030\n\020effective_health\030\004" +
      " \001(\r\022\022\n\ndeath_time\030\005 \001(\002\022\021\n\tkiller_id\030\006 " +
      "\001(\005\"v\n\023CMsgHeroAbilityStat\0227\n\tstat_type\030" +
      "\001 \001(\0162\016.EHeroStatType:\024k_EHeroStatType_N",
      "one\022\021\n\tint_value\030\002 \001(\005\022\023\n\013float_value\030\003 " +
      "\001(\002\"d\n\034CMsgCombatAnalyzerPlayerStat\022\022\n\na" +
      "ccount_id\030\001 \001(\r\0220\n\022hero_ability_stats\030\002 " +
      "\003(\0132\024.CMsgHeroAbilityStat\"`\n\027CMsgCombatA" +
      "nalyzerStats\022\020\n\010match_id\030\001 \001(\004\0223\n\014player" +
      "_stats\030\002 \003(\0132\035.CMsgCombatAnalyzerPlayerS" +
      "tat\"\334\001\n\036CDOTAUserMsg_ProjectionAbility\022\022" +
      "\n\nability_id\030\001 \001(\005\022\030\n\020caster_ent_index\030\002" +
      " \001(\005\022\023\n\013caster_team\030\003 \001(\005\022\023\n\013channel_end" +
      "\030\004 \001(\010\022\033\n\006origin\030\005 \001(\0132\013.CMsgVector\022\031\n\021t",
      "rack_caster_only\030\006 \001(\010\022\020\n\010end_time\030\007 \001(\002" +
      "\022\030\n\020victim_ent_index\030\010 \001(\005\"a\n\034CDOTAUserM" +
      "sg_ProjectionEvent\0223\n\010event_id\030\001 \001(\0162\021.E" +
      "ProjectionEvent:\016ePE_FirstBlood\022\014\n\004team\030" +
      "\002 \001(\r\"B\n\024CDOTAUserMsg_XPAlert\022\021\n\tplayer_" +
      "id\030\001 \001(\005\022\027\n\017target_entindex\030\002 \001(\005\"}\n\034CDO" +
      "TAUserMsg_TalentTreeAlert\022\021\n\tplayer_id\030\001" +
      " \001(\005\022\027\n\017target_entindex\030\002 \001(\005\022\022\n\nability" +
      "_id\030\003 \001(\005\022\014\n\004slot\030\004 \001(\005\022\017\n\007learned\030\005 \001(\010" +
      "\"\"\n CDOTAUserMsg_UpdateQuestProgress\"\237\001\n",
      "\037CDOTAUserMsg_KillcamDamageTaken\022\021\n\tplay" +
      "er_id\030\001 \002(\005\022\024\n\014damage_taken\030\002 \001(\r\022\021\n\tite" +
      "m_type\030\003 \001(\r\022\027\n\017item_ability_id\030\004 \001(\005\022\021\n" +
      "\thero_name\030\005 \001(\t\022\024\n\014damage_color\030\006 \001(\t\"A" +
      "\n\036CDOTAUserMsg_SelectPenaltyGold\022\021\n\tplay" +
      "er_id\030\001 \002(\005\022\014\n\004cost\030\002 \001(\021\"z\n\033CDOTAUserMs" +
      "g_RollDiceResult\022\021\n\tplayer_id\030\001 \001(\005\022\024\n\014c" +
      "hannel_type\030\002 \001(\r\022\020\n\010roll_min\030\003 \001(\r\022\020\n\010r" +
      "oll_max\030\004 \001(\r\022\016\n\006result\030\005 \001(\r\"V\n\033CDOTAUs" +
      "erMsg_FlipCoinResult\022\021\n\tplayer_id\030\001 \001(\005\022",
      "\024\n\014channel_type\030\002 \001(\r\022\016\n\006result\030\003 \001(\010\"N\n" +
      "#CDOTAUserMessage_TeamCaptainChanged\022\014\n\004" +
      "team\030\001 \001(\r\022\031\n\021captain_player_id\030\002 \001(\005\"\202\001" +
      "\n\036CDOTAUserMsg_HeroRelicProgress\022\027\n\017hero" +
      "_relic_type\030\001 \001(\r\022\r\n\005value\030\002 \001(\r\022\017\n\007ehan" +
      "dle\030\003 \001(\r\022\020\n\010event_id\030\004 \001(\r\022\025\n\rvalue_dis" +
      "play\030\005 \001(\002\"\210\001\n\031CDOTAUserMsg_DamageReport" +
      "\022\021\n\tplayer_id\030\001 \001(\005\022\026\n\016target_hero_id\030\002 " +
      "\001(\005\022\026\n\016source_hero_id\030\003 \001(\005\022\025\n\rdamage_am" +
      "ount\030\004 \001(\005\022\021\n\tbroadcast\030\005 \001(\010\"\217\001\n\031CDOTAU",
      "serMsg_SalutePlayer\022\030\n\020source_player_id\030" +
      "\001 \001(\005\022\030\n\020target_player_id\030\002 \001(\005\022\022\n\ntip_a" +
      "mount\030\003 \001(\r\022\020\n\010event_id\030\004 \001(\r\022\030\n\020custom_" +
      "tip_style\030\005 \001(\t\"r\n\027CDOTAUserMsg_GiftPlay" +
      "er\022\034\n\020source_player_id\030\001 \001(\005:\002-1\022\034\n\020targ" +
      "et_player_id\030\002 \001(\005:\002-1\022\033\n\023gift_item_def_" +
      "index\030\003 \001(\r\"<\n\025CDOTAUserMsg_TipAlert\022\021\n\t" +
      "player_id\030\001 \001(\005\022\020\n\010tip_text\030\002 \001(\t\"X\n\032CDO" +
      "TAUserMsg_ESArcanaCombo\022\017\n\007ehandle\030\001 \001(\r" +
      "\022\023\n\013combo_count\030\002 \001(\r\022\024\n\014arcana_level\030\003 ",
      "\001(\r\"`\n!CDOTAUserMsg_ESArcanaComboSummary" +
      "\022\017\n\007ehandle\030\001 \001(\r\022\023\n\013combo_count\030\002 \001(\r\022\025" +
      "\n\rdamage_amount\030\003 \001(\r\"w\n\032CDOTAUserMsg_OM" +
      "ArcanaCombo\022\017\n\007ehandle\030\001 \001(\r\022\030\n\020multicas" +
      "t_amount\030\002 \001(\r\022\024\n\014arcana_level\030\003 \001(\r\022\030\n\020" +
      "multicast_chance\030\004 \001(\r\"\177\n\036CDOTAUserMsg_H" +
      "ighFiveCompleted\022\023\n\013player_id_1\030\001 \001(\005\022\023\n" +
      "\013player_id_2\030\002 \001(\005\022\031\n\021special_high_five\030" +
      "\003 \001(\010\022\030\n\020special_entindex\030\004 \001(\005\"5\n CDOTA" +
      "UserMsg_HighFiveLeftHanging\022\021\n\tplayer_id",
      "\030\001 \001(\005\"f\n\032CDOTAUserMsg_ShovelUnearth\022\021\n\t" +
      "player_id\030\001 \001(\005\022\020\n\010all_chat\030\002 \001(\010\022\021\n\tloc" +
      "string\030\003 \001(\t\022\020\n\010quantity\030\004 \001(\r\"\360\001\n\031CDOTA" +
      "UserMsg_AllStarEvent\022\030\n\020source_player_id" +
      "\030\001 \001(\005\022\030\n\020target_player_id\030\002 \001(\005\022\024\n\014poin" +
      "t_amount\030\003 \001(\r\022\020\n\010event_id\030\004 \001(\r\022=\n\rplay" +
      "er_scores\030\005 \003(\0132&.CDOTAUserMsg_AllStarEv" +
      "ent.PlayerScore\0328\n\013PlayerScore\022\021\n\tplayer" +
      "_id\030\001 \001(\005\022\026\n\016score_sans_kda\030\002 \001(\r\">\n\037CDO" +
      "TAUserMsg_QueuedOrderRemoved\022\033\n\023unit_ord",
      "er_sequence\030\001 \003(\r\"\306\001\n\033CDOTAUserMsg_Debug" +
      "Challenge\022\026\n\016challenge_type\030\001 \002(\r\022\032\n\022cha" +
      "llenge_query_id\030\002 \002(\r\022\020\n\010event_id\030\003 \002(\r\022" +
      "\023\n\013instance_id\030\004 \001(\r\022\027\n\017challenge_var_0\030" +
      "\005 \001(\r\022\027\n\017challenge_var_1\030\006 \001(\r\022\032\n\022challe" +
      "nge_max_rank\030\007 \001(\r\"w\n\035CDOTAUserMsg_Found" +
      "NeutralItem\022\021\n\tplayer_id\030\001 \001(\005\022\027\n\017item_a" +
      "bility_id\030\002 \001(\005\022\021\n\titem_tier\030\003 \001(\r\022\027\n\017ti" +
      "er_item_count\030\004 \001(\r\"I\n\034CDOTAUserMsg_Outp" +
      "ostCaptured\022\030\n\020outpost_entindex\030\001 \001(\005\022\017\n",
      "\007team_id\030\002 \001(\r\"C\n\035CDOTAUserMsg_OutpostGr" +
      "antedXP\022\017\n\007team_id\030\001 \001(\r\022\021\n\txp_amount\030\002 " +
      "\001(\r\"5\n\035CDOTAUserMsg_MoveCameraToUnit\022\024\n\014" +
      "unit_ehandle\030\001 \001(\r\"\230\001\n\036CDOTAUserMsg_Paus" +
      "eMinigameData\022:\n\tdata_bits\030\001 \003(\0132\'.CDOTA" +
      "UserMsg_PauseMinigameData.DataBit\032:\n\007Dat" +
      "aBit\022\r\n\005index\030\001 \001(\r\022\014\n\004data\030\002 \001(\005\022\022\n\ndat" +
      "a_extra\030\003 \001(\003\"\241\002\n\'CDOTAUserMsg_VersusSce" +
      "ne_PlayerBehavior\022\021\n\tplayer_id\030\001 \001(\005\022S\n\010" +
      "behavior\030\002 \001(\0162\037.EDOTAVersusScenePlayerB",
      "ehavior: VS_PLAYER_BEHAVIOR_PLAY_ACTIVIT" +
      "Y\0220\n\rplay_activity\030\003 \001(\0132\031.VersusScene_P" +
      "layActivity\022*\n\nchat_wheel\030\004 \001(\0132\026.Versus" +
      "Scene_ChatWheel\0220\n\rplayback_rate\030\005 \001(\0132\031" +
      ".VersusScene_PlaybackRate\"t\n\036CDOTAUserMs" +
      "g_QoP_ArcanaSummary\022\017\n\007ehandle\030\001 \001(\r\022\024\n\014" +
      "arcana_level\030\002 \001(\r\022\023\n\013players_hit\030\003 \001(\r\022" +
      "\026\n\016players_killed\030\004 \001(\r\"J\n\036CDOTAUserMsg_" +
      "HotPotato_Created\022\023\n\013player_id_1\030\001 \001(\005\022\023" +
      "\n\013player_id_2\030\002 \001(\005\"4\n\037CDOTAUserMsg_HotP",
      "otato_Exploded\022\021\n\tplayer_id\030\001 \001(\005\"Y\n\037CDO" +
      "TAUserMsg_WK_Arcana_Progress\022\017\n\007ehandle\030" +
      "\001 \001(\r\022\024\n\014arcana_level\030\002 \001(\r\022\017\n\007hero_id\030\003" +
      " \001(\005\"\212\004\n$CDOTAUserMsg_GuildChallenge_Pro" +
      "gress\022M\n\017player_progress\030\001 \003(\01324.CDOTAUs" +
      "erMsg_GuildChallenge_Progress.PlayerProg" +
      "ress\022\020\n\010guild_id\030\002 \001(\r\022\035\n\025challenge_inst" +
      "ance_id\030\003 \001(\r\022\033\n\023challenge_parameter\030\004 \001" +
      "(\r\022f\n\016challenge_type\030\005 \001(\01624.CDOTAUserMs" +
      "g_GuildChallenge_Progress.EChallengeType",
      ":\030k_EChallengeType_Invalid\022#\n\033challenge_" +
      "progress_at_start\030\007 \001(\r\022\020\n\010complete\030\010 \001(" +
      "\010\0325\n\016PlayerProgress\022\021\n\tplayer_id\030\001 \001(\005\022\020" +
      "\n\010progress\030\006 \001(\r\"o\n\016EChallengeType\022\034\n\030k_" +
      "EChallengeType_Invalid\020\000\022 \n\034k_EChallenge" +
      "Type_Cooperative\020\001\022\035\n\031k_EChallengeType_C" +
      "ontract\020\002\"\265\001\n\035CDOTAUserMsg_WRArcanaProgr" +
      "ess\022\017\n\007ehandle\030\001 \001(\r\022\026\n\016target_ehandle\030\002" +
      " \001(\r\022\025\n\rarrows_landed\030\003 \001(\r\022\024\n\014damage_de" +
      "alt\030\004 \001(\r\022\021\n\ttarget_hp\030\005 \001(\r\022\025\n\rtarget_m",
      "ax_hp\030\006 \001(\r\022\024\n\014arcana_level\030\007 \001(\r\"\305\001\n\034CD" +
      "OTAUserMsg_WRArcanaSummary\022\017\n\007ehandle\030\001 " +
      "\001(\r\022\026\n\016target_ehandle\030\002 \001(\r\022\025\n\rarrows_la" +
      "nded\030\003 \001(\r\022\024\n\014damage_dealt\030\004 \001(\r\022\021\n\ttarg" +
      "et_hp\030\005 \001(\r\022\025\n\rtarget_max_hp\030\006 \001(\r\022\024\n\014ar" +
      "cana_level\030\007 \001(\r\022\017\n\007success\030\010 \001(\010\"\203\001\n\037CD" +
      "OTAUserMsg_EmptyItemSlotAlert\022\030\n\020source_" +
      "player_id\030\001 \001(\005\022\030\n\020target_player_id\030\002 \001(" +
      "\005\022\022\n\nslot_index\030\003 \001(\005\022\030\n\020cooldown_second" +
      "s\030\004 \001(\005\"\247\001\n\034CDOTAUserMsg_AghsStatusAlert",
      "\022\030\n\020source_player_id\030\001 \001(\005\022\030\n\020target_pla" +
      "yer_id\030\002 \001(\005\022\027\n\017target_entindex\030\003 \001(\005\022\022\n" +
      "\nalert_type\030\004 \001(\r\022\023\n\013has_scepter\030\005 \001(\010\022\021" +
      "\n\thas_shard\030\006 \001(\010\"Z\n\031CDOTAUserMsg_MutedP" +
      "layers\022\035\n\025text_muted_player_ids\030\001 \003(\005\022\036\n" +
      "\026voice_muted_player_ids\030\002 \003(\005\"\376\002\n\032CDOTAU" +
      "serMsg_ContextualTip\022\016\n\006tip_id\030\001 \001(\005\022\034\n\024" +
      "referenced_abilities\030\002 \003(\t\022\030\n\020referenced" +
      "_units\030\003 \003(\t\022\030\n\020panorama_classes\030\004 \003(\t\022\030" +
      "\n\020force_annotation\030\005 \001(\010\022\017\n\007variant\030\006 \001(",
      "\005\022\021\n\tint_param\030\007 \001(\005\022\022\n\nint_param2\030\010 \001(\005" +
      "\022\023\n\013float_param\030\t \001(\002\022\024\n\014float_param2\030\n " +
      "\001(\002\022\024\n\014string_param\030\013 \001(\t\022\025\n\rstring_para" +
      "m2\030\014 \001(\t\022\031\n\021tip_text_override\030\r \001(\t\022\037\n\027t" +
      "ip_annotation_override\030\016 \001(\t\022\030\n\020panorama" +
      "_snippet\030\017 \001(\t\"`\n\030CDOTAUserMsg_ChatMessa" +
      "ge\022\030\n\020source_player_id\030\001 \001(\005\022\024\n\014channel_" +
      "type\030\002 \001(\r\022\024\n\014message_text\030\003 \001(\t\"[\n%CDOT" +
      "AUserMsg_RockPaperScissorsStarted\022\030\n\020pla" +
      "yer_id_source\030\001 \001(\005\022\030\n\020player_id_target\030",
      "\002 \001(\005\"\204\001\n&CDOTAUserMsg_RockPaperScissors" +
      "Finished\022\023\n\013player_id_1\030\001 \001(\005\022\023\n\013player_" +
      "id_2\030\002 \001(\005\022\027\n\017player_1_choice\030\003 \001(\005\022\027\n\017p" +
      "layer_2_choice\030\004 \001(\005\"T\n\037CDOTAUserMsg_Due" +
      "lOpponentKilled\022\030\n\020player_id_winner\030\001 \001(" +
      "\005\022\027\n\017player_id_loser\030\002 \001(\005\"E\n\031CDOTAUserM" +
      "sg_DuelAccepted\022\023\n\013player_id_1\030\001 \001(\005\022\023\n\013" +
      "player_id_2\030\002 \001(\005\"9\n\032CDOTAUserMsg_DuelRe" +
      "quested\022\033\n\023player_id_requestor\030\001 \001(\005\"\252\001\n" +
      "4CDOTAUserMsg_MuertaReleaseEvent_Assigne",
      "dTargetKilled\022\034\n\020player_id_killer\030\001 \002(\005:" +
      "\002-1\022\034\n\020player_id_target\030\002 \002(\005:\002-1\022\016\n\006poi" +
      "nts\030\003 \002(\005\022\024\n\014points_total\030\004 \002(\005\022\020\n\010last_" +
      "hit\030\005 \002(\010\"^\n#CDOTAUserMsg_PlayerDraftSug" +
      "gestPick\022\025\n\tplayer_id\030\001 \001(\005:\002-1\022 \n\024sugge" +
      "stion_player_id\030\002 \001(\005:\002-1\"i\n\034CDOTAUserMs" +
      "g_PlayerDraftPick\022\035\n\021player_id_captain\030\001" +
      " \001(\005:\002-1\022\034\n\020player_id_target\030\002 \001(\005:\002-1\022\014" +
      "\n\004team\030\003 \001(\005\"k\n\026CDOTAUserMsg_FacetPing\022\025" +
      "\n\tplayer_id\030\001 \001(\005:\002-1\022\025\n\rfacet_strhash\030\002",
      " \001(\r\022\021\n\tentity_id\030\003 \001(\r\022\020\n\010all_chat\030\004 \001(" +
      "\010\"U\n\027CDOTAUserMsg_InnatePing\022\025\n\tplayer_i" +
      "d\030\001 \001(\005:\002-1\022\021\n\tentity_id\030\002 \001(\r\022\020\n\010all_ch" +
      "at\030\003 \001(\010\"\370\017\n\026CMsgDOTACombatLogEntry\022:\n\004t" +
      "ype\030\001 \001(\0162\025.DOTA_COMBATLOG_TYPES:\025DOTA_C" +
      "OMBATLOG_DAMAGE\022\023\n\013target_name\030\002 \001(\r\022\032\n\022" +
      "target_source_name\030\003 \001(\r\022\025\n\rattacker_nam" +
      "e\030\004 \001(\r\022\032\n\022damage_source_name\030\005 \001(\r\022\026\n\016i" +
      "nflictor_name\030\006 \001(\r\022\034\n\024is_attacker_illus" +
      "ion\030\007 \001(\010\022\030\n\020is_attacker_hero\030\010 \001(\010\022\032\n\022i",
      "s_target_illusion\030\t \001(\010\022\026\n\016is_target_her" +
      "o\030\n \001(\010\022\032\n\022is_visible_radiant\030\013 \001(\010\022\027\n\017i" +
      "s_visible_dire\030\014 \001(\010\022\r\n\005value\030\r \001(\r\022\016\n\006h" +
      "ealth\030\016 \001(\005\022\021\n\ttimestamp\030\017 \001(\002\022\025\n\rstun_d" +
      "uration\030\020 \001(\002\022\025\n\rslow_duration\030\021 \001(\002\022\034\n\024" +
      "is_ability_toggle_on\030\022 \001(\010\022\035\n\025is_ability" +
      "_toggle_off\030\023 \001(\010\022\025\n\rability_level\030\024 \001(\r" +
      "\022\022\n\nlocation_x\030\025 \001(\002\022\022\n\nlocation_y\030\026 \001(\002" +
      "\022\023\n\013gold_reason\030\027 \001(\r\022\025\n\rtimestamp_raw\030\030" +
      " \001(\002\022\031\n\021modifier_duration\030\031 \001(\002\022\021\n\txp_re",
      "ason\030\032 \001(\r\022\021\n\tlast_hits\030\033 \001(\r\022\025\n\rattacke" +
      "r_team\030\034 \001(\r\022\023\n\013target_team\030\035 \001(\r\022\030\n\020obs" +
      "_wards_placed\030\036 \001(\r\022\026\n\016assist_player0\030\037 " +
      "\001(\r\022\026\n\016assist_player1\030  \001(\r\022\026\n\016assist_pl" +
      "ayer2\030! \001(\r\022\026\n\016assist_player3\030\" \001(\r\022\023\n\013s" +
      "tack_count\030# \001(\r\022\027\n\017hidden_modifier\030$ \001(" +
      "\010\022\032\n\022is_target_building\030% \001(\010\022\031\n\021neutral" +
      "_camp_type\030& \001(\r\022\021\n\trune_type\030\' \001(\r\022\026\n\016a" +
      "ssist_players\030( \003(\005\022\024\n\014is_heal_save\030) \001(" +
      "\010\022\033\n\023is_ultimate_ability\030* \001(\010\022\033\n\023attack",
      "er_hero_level\030+ \001(\r\022\031\n\021target_hero_level" +
      "\030, \001(\r\022\013\n\003xpm\030- \001(\r\022\013\n\003gpm\030. \001(\r\022\026\n\016even" +
      "t_location\030/ \001(\r\022\026\n\016target_is_self\0300 \001(\010" +
      "\022\023\n\013damage_type\0301 \001(\r\022\035\n\025invisibility_mo" +
      "difier\0302 \001(\010\022\027\n\017damage_category\0303 \001(\r\022\020\n" +
      "\010networth\0304 \001(\r\022\025\n\rbuilding_type\0305 \001(\r\022!" +
      "\n\031modifier_elapsed_duration\0306 \001(\002\022\030\n\020sil" +
      "ence_modifier\0307 \001(\010\022\033\n\023heal_from_lifeste" +
      "al\0308 \001(\010\022\027\n\017modifier_purged\0309 \001(\010\022\024\n\014spe" +
      "ll_evaded\030: \001(\010\022\"\n\032motion_controller_mod",
      "ifier\030; \001(\010\022\027\n\017long_range_kill\030< \001(\010\022\036\n\026" +
      "modifier_purge_ability\030= \001(\r\022\032\n\022modifier" +
      "_purge_npc\030> \001(\r\022\025\n\rroot_modifier\030? \001(\010\022" +
      "\036\n\026total_unit_death_count\030@ \001(\r\022\025\n\raura_" +
      "modifier\030A \001(\010\022\035\n\025armor_debuff_modifier\030" +
      "B \001(\010\022#\n\033no_physical_damage_modifier\030C \001" +
      "(\010\022\030\n\020modifier_ability\030D \001(\r\022\027\n\017modifier" +
      "_hidden\030E \001(\010\022#\n\033inflictor_is_stolen_abi" +
      "lity\030F \001(\010\022\030\n\020kill_eater_event\030G \001(\r\022\031\n\021" +
      "unit_status_label\030H \001(\r\022\036\n\026spell_generat",
      "ed_attack\030I \001(\010\022\025\n\rat_night_time\030J \001(\010\022\034" +
      "\n\024attacker_has_scepter\030K \001(\010\022\031\n\021neutral_" +
      "camp_team\030L \001(\r\022\032\n\022regenerated_health\030M " +
      "\001(\002\022\030\n\020will_reincarnate\030N \001(\010\022\024\n\014uses_ch" +
      "arges\030O \001(\010*\347\013\n\024DOTA_COMBATLOG_TYPES\022#\n\026" +
      "DOTA_COMBATLOG_INVALID\020\377\377\377\377\377\377\377\377\377\001\022\031\n\025DOT" +
      "A_COMBATLOG_DAMAGE\020\000\022\027\n\023DOTA_COMBATLOG_H" +
      "EAL\020\001\022\037\n\033DOTA_COMBATLOG_MODIFIER_ADD\020\002\022\"" +
      "\n\036DOTA_COMBATLOG_MODIFIER_REMOVE\020\003\022\030\n\024DO" +
      "TA_COMBATLOG_DEATH\020\004\022\032\n\026DOTA_COMBATLOG_A",
      "BILITY\020\005\022\027\n\023DOTA_COMBATLOG_ITEM\020\006\022\033\n\027DOT" +
      "A_COMBATLOG_LOCATION\020\007\022\027\n\023DOTA_COMBATLOG" +
      "_GOLD\020\010\022\035\n\031DOTA_COMBATLOG_GAME_STATE\020\t\022\025" +
      "\n\021DOTA_COMBATLOG_XP\020\n\022\033\n\027DOTA_COMBATLOG_" +
      "PURCHASE\020\013\022\032\n\026DOTA_COMBATLOG_BUYBACK\020\014\022\"" +
      "\n\036DOTA_COMBATLOG_ABILITY_TRIGGER\020\r\022\036\n\032DO" +
      "TA_COMBATLOG_PLAYERSTATS\020\016\022\034\n\030DOTA_COMBA" +
      "TLOG_MULTIKILL\020\017\022\035\n\031DOTA_COMBATLOG_KILLS" +
      "TREAK\020\020\022%\n!DOTA_COMBATLOG_TEAM_BUILDING_" +
      "KILL\020\021\022\036\n\032DOTA_COMBATLOG_FIRST_BLOOD\020\022\022\'",
      "\n#DOTA_COMBATLOG_MODIFIER_STACK_EVENT\020\023\022" +
      "%\n!DOTA_COMBATLOG_NEUTRAL_CAMP_STACK\020\024\022\036" +
      "\n\032DOTA_COMBATLOG_PICKUP_RUNE\020\025\022%\n!DOTA_C" +
      "OMBATLOG_REVEALED_INVISIBLE\020\026\022\035\n\031DOTA_CO" +
      "MBATLOG_HERO_SAVED\020\027\022 \n\034DOTA_COMBATLOG_M" +
      "ANA_RESTORED\020\030\022\037\n\033DOTA_COMBATLOG_HERO_LE" +
      "VELUP\020\031\022#\n\037DOTA_COMBATLOG_BOTTLE_HEAL_AL" +
      "LY\020\032\022 \n\034DOTA_COMBATLOG_ENDGAME_STATS\020\033\022$" +
      "\n DOTA_COMBATLOG_INTERRUPT_CHANNEL\020\034\022\036\n\032" +
      "DOTA_COMBATLOG_ALLIED_GOLD\020\035\022\036\n\032DOTA_COM",
      "BATLOG_AEGIS_TAKEN\020\036\022\036\n\032DOTA_COMBATLOG_M" +
      "ANA_DAMAGE\020\037\022,\n(DOTA_COMBATLOG_PHYSICAL_" +
      "DAMAGE_PREVENTED\020 \022 \n\034DOTA_COMBATLOG_UNI" +
      "T_SUMMONED\020!\022\037\n\033DOTA_COMBATLOG_ATTACK_EV" +
      "ADE\020\"\022\033\n\027DOTA_COMBATLOG_TREE_CUT\020#\022\"\n\036DO" +
      "TA_COMBATLOG_SUCCESSFUL_SCAN\020$\022!\n\035DOTA_C" +
      "OMBATLOG_END_KILLSTREAK\020%\022$\n DOTA_COMBAT" +
      "LOG_BLOODSTONE_CHARGE\020&\022\"\n\036DOTA_COMBATLO" +
      "G_CRITICAL_DAMAGE\020\'\022\037\n\033DOTA_COMBATLOG_SP" +
      "ELL_ABSORB\020(\022\"\n\036DOTA_COMBATLOG_UNIT_TELE",
      "PORTED\020)\022#\n\037DOTA_COMBATLOG_KILL_EATER_EV" +
      "ENT\020*\022&\n\"DOTA_COMBATLOG_NEUTRAL_ITEM_EAR" +
      "NED\020+*\310\037\n\021DOTA_CHAT_MESSAGE\022!\n\024CHAT_MESS" +
      "AGE_INVALID\020\377\377\377\377\377\377\377\377\377\001\022\032\n\026CHAT_MESSAGE_H" +
      "ERO_KILL\020\000\022\032\n\026CHAT_MESSAGE_HERO_DENY\020\001\022\036" +
      "\n\032CHAT_MESSAGE_BARRACKS_KILL\020\002\022\033\n\027CHAT_M" +
      "ESSAGE_TOWER_KILL\020\003\022\033\n\027CHAT_MESSAGE_TOWE" +
      "R_DENY\020\004\022\033\n\027CHAT_MESSAGE_FIRSTBLOOD\020\005\022\034\n" +
      "\030CHAT_MESSAGE_STREAK_KILL\020\006\022\030\n\024CHAT_MESS" +
      "AGE_BUYBACK\020\007\022\026\n\022CHAT_MESSAGE_AEGIS\020\010\022\034\n",
      "\030CHAT_MESSAGE_ROSHAN_KILL\020\t\022\035\n\031CHAT_MESS" +
      "AGE_COURIER_LOST\020\n\022\"\n\036CHAT_MESSAGE_COURI" +
      "ER_RESPAWNED\020\013\022\033\n\027CHAT_MESSAGE_GLYPH_USE" +
      "D\020\014\022\036\n\032CHAT_MESSAGE_ITEM_PURCHASE\020\r\022\030\n\024C" +
      "HAT_MESSAGE_CONNECT\020\016\022\033\n\027CHAT_MESSAGE_DI" +
      "SCONNECT\020\017\022.\n*CHAT_MESSAGE_DISCONNECT_WA" +
      "IT_FOR_RECONNECT\020\020\022*\n&CHAT_MESSAGE_DISCO" +
      "NNECT_TIME_REMAINING\020\021\0221\n-CHAT_MESSAGE_D" +
      "ISCONNECT_TIME_REMAINING_PLURAL\020\022\022\032\n\026CHA" +
      "T_MESSAGE_RECONNECT\020\023\022\034\n\030CHAT_MESSAGE_PL",
      "AYER_LEFT\020\024\022\036\n\032CHAT_MESSAGE_SAFE_TO_LEAV" +
      "E\020\025\022\034\n\030CHAT_MESSAGE_RUNE_PICKUP\020\026\022\034\n\030CHA" +
      "T_MESSAGE_RUNE_BOTTLE\020\027\022\032\n\026CHAT_MESSAGE_" +
      "RUNE_DENY\020r\022\031\n\025CHAT_MESSAGE_INTHEBAG\020\030\022\033" +
      "\n\027CHAT_MESSAGE_SECRETSHOP\020\031\022#\n\037CHAT_MESS" +
      "AGE_ITEM_AUTOPURCHASED\020\032\022\037\n\033CHAT_MESSAGE" +
      "_ITEMS_COMBINED\020\033\022\035\n\031CHAT_MESSAGE_SUPER_" +
      "CREEPS\020\034\022%\n!CHAT_MESSAGE_CANT_USE_ACTION" +
      "_ITEM\020\035\022\"\n\036CHAT_MESSAGE_CHARGES_EXHAUSTE" +
      "D\020\036\022\032\n\026CHAT_MESSAGE_CANTPAUSE\020\037\022\035\n\031CHAT_",
      "MESSAGE_NOPAUSESLEFT\020 \022\035\n\031CHAT_MESSAGE_C" +
      "ANTPAUSEYET\020!\022\027\n\023CHAT_MESSAGE_PAUSED\020\"\022\"" +
      "\n\036CHAT_MESSAGE_UNPAUSE_COUNTDOWN\020#\022\031\n\025CH" +
      "AT_MESSAGE_UNPAUSED\020$\022\036\n\032CHAT_MESSAGE_AU" +
      "TO_UNPAUSED\020%\022\032\n\026CHAT_MESSAGE_YOUPAUSED\020" +
      "&\022 \n\034CHAT_MESSAGE_CANTUNPAUSETEAM\020\'\022\"\n\036C" +
      "HAT_MESSAGE_VOICE_TEXT_BANNED\020)\022.\n*CHAT_" +
      "MESSAGE_SPECTATORS_WATCHING_THIS_GAME\020*\022" +
      " \n\034CHAT_MESSAGE_REPORT_REMINDER\020+\022\032\n\026CHA" +
      "T_MESSAGE_ECON_ITEM\020,\022\026\n\022CHAT_MESSAGE_TA",
      "UNT\020-\022\027\n\023CHAT_MESSAGE_RANDOM\020.\022\030\n\024CHAT_M" +
      "ESSAGE_RD_TURN\020/\022 \n\034CHAT_MESSAGE_DROP_RA" +
      "TE_BONUS\0201\022!\n\035CHAT_MESSAGE_NO_BATTLE_POI" +
      "NTS\0202\022\035\n\031CHAT_MESSAGE_DENIED_AEGIS\0203\022\036\n\032" +
      "CHAT_MESSAGE_INFORMATIONAL\0204\022\035\n\031CHAT_MES" +
      "SAGE_AEGIS_STOLEN\0205\022\035\n\031CHAT_MESSAGE_ROSH" +
      "AN_CANDY\0206\022\034\n\030CHAT_MESSAGE_ITEM_GIFTED\0207" +
      "\022\'\n#CHAT_MESSAGE_HERO_KILL_WITH_GREEVIL\020" +
      "8\022(\n$CHAT_MESSAGE_HOLDOUT_TOWER_DESTROYE" +
      "D\0209\022\'\n#CHAT_MESSAGE_HOLDOUT_WALL_DESTROY",
      "ED\020:\022&\n\"CHAT_MESSAGE_HOLDOUT_WALL_FINISH" +
      "ED\020;\022)\n%CHAT_MESSAGE_PLAYER_LEFT_LIMITED" +
      "_HERO\020>\0221\n-CHAT_MESSAGE_ABANDON_LIMITED_" +
      "HERO_EXPLANATION\020?\022(\n$CHAT_MESSAGE_DISCO" +
      "NNECT_LIMITED_HERO\020@\0223\n/CHAT_MESSAGE_LOW" +
      "_PRIORITY_COMPLETED_EXPLANATION\020A\022,\n(CHA" +
      "T_MESSAGE_RECRUITMENT_DROP_RATE_BONUS\020B\022" +
      "1\n-CHAT_MESSAGE_FROSTIVUS_SHINING_BOOSTE" +
      "R_ACTIVE\020C\022 \n\034CHAT_MESSAGE_PLAYER_LEFT_A" +
      "FK\020I\0222\n.CHAT_MESSAGE_PLAYER_LEFT_DISCONN",
      "ECTED_TOO_LONG\020J\022!\n\035CHAT_MESSAGE_PLAYER_" +
      "ABANDONED\020K\022%\n!CHAT_MESSAGE_PLAYER_ABAND" +
      "ONED_AFK\020L\0227\n3CHAT_MESSAGE_PLAYER_ABANDO" +
      "NED_DISCONNECTED_TOO_LONG\020M\022#\n\037CHAT_MESS" +
      "AGE_WILL_NOT_BE_SCORED\020N\022*\n&CHAT_MESSAGE" +
      "_WILL_NOT_BE_SCORED_RANKED\020O\022+\n\'CHAT_MES" +
      "SAGE_WILL_NOT_BE_SCORED_NETWORK\020P\0222\n.CHA" +
      "T_MESSAGE_WILL_NOT_BE_SCORED_NETWORK_RAN" +
      "KED\020Q\022)\n%CHAT_MESSAGE_CAN_QUIT_WITHOUT_A" +
      "BANDON\020R\022:\n6CHAT_MESSAGE_RANKED_GAME_STI",
      "LL_SCORED_LEAVERS_GET_LOSS\020S\0228\n4CHAT_MES" +
      "SAGE_ABANDON_RANKED_BEFORE_FIRST_BLOOD_P" +
      "ARTY\020T\022!\n\035CHAT_MESSAGE_COMPENDIUM_LEVEL\020" +
      "U\022*\n&CHAT_MESSAGE_VICTORY_PREDICTION_STR" +
      "EAK\020V\022\"\n\036CHAT_MESSAGE_ASSASSIN_ANNOUNCE\020" +
      "W\022!\n\035CHAT_MESSAGE_ASSASSIN_SUCCESS\020X\022 \n\034" +
      "CHAT_MESSAGE_ASSASSIN_DENIED\020Y\0227\n3CHAT_M" +
      "ESSAGE_VICTORY_PREDICTION_SINGLE_USER_CO" +
      "NFIRM\020Z\022\034\n\030CHAT_MESSAGE_EFFIGY_KILL\020[\022+\n" +
      "\'CHAT_MESSAGE_VOICE_TEXT_BANNED_OVERFLOW",
      "\020\\\022\"\n\036CHAT_MESSAGE_YEAR_BEAST_KILLED\020]\022 " +
      "\n\034CHAT_MESSAGE_PAUSE_COUNTDOWN\020^\022\036\n\032CHAT" +
      "_MESSAGE_COINS_WAGERED\020_\022#\n\037CHAT_MESSAGE" +
      "_HERO_NOMINATED_BAN\020`\022\034\n\030CHAT_MESSAGE_HE" +
      "RO_BANNED\020a\022\037\n\033CHAT_MESSAGE_HERO_BAN_COU" +
      "NT\020b\022\036\n\032CHAT_MESSAGE_RIVER_PAINTED\020c\022\032\n\026" +
      "CHAT_MESSAGE_SCAN_USED\020d\022\036\n\032CHAT_MESSAGE" +
      "_SHRINE_KILLED\020e\022\"\n\036CHAT_MESSAGE_WAGER_T" +
      "OKEN_SPENT\020f\022\033\n\027CHAT_MESSAGE_RANK_WAGER\020" +
      "g\022$\n CHAT_MESSAGE_NEW_PLAYER_REMINDER\020h\022",
      "%\n!CHAT_MESSAGE_OBSERVER_WARD_KILLED\020i\022#" +
      "\n\037CHAT_MESSAGE_SENTRY_WARD_KILLED\020j\022-\n)C" +
      "HAT_MESSAGE_ITEM_PLACED_IN_NEUTRAL_STASH" +
      "\020k\022$\n CHAT_MESSAGE_HERO_CHOICE_INVALID\020l" +
      "\022\027\n\023CHAT_MESSAGE_BOUNTY\020m\022$\n CHAT_MESSAG" +
      "E_ABILITY_DRAFT_START\020n\022!\n\035CHAT_MESSAGE_" +
      "HERO_FOUND_CANDY\020o\022\'\n#CHAT_MESSAGE_ABILI" +
      "TY_DRAFT_RANDOMED\020p\022(\n$CHAT_MESSAGE_PRIV" +
      "ATE_COACH_CONNECTED\020q\022%\n!CHAT_MESSAGE_CA" +
      "NT_PAUSE_TOO_EARLY\020s\022\'\n#CHAT_MESSAGE_HER",
      "O_KILL_WITH_PENGUIN\020t\022\036\n\032CHAT_MESSAGE_MI" +
      "NIBOSS_KILL\020u\022(\n$CHAT_MESSAGE_PLAYER_IN_" +
      "GAME_BAN_TEXT\020v\022\037\n\033CHAT_MESSAGE_BANNER_P" +
      "LANTED\020w*\262\001\n\035DOTA_NO_BATTLE_POINTS_REASO" +
      "NS\022%\n!NO_BATTLE_POINTS_WRONG_LOBBY_TYPE\020" +
      "\001\022\"\n\036NO_BATTLE_POINTS_PRACTICE_BOTS\020\002\022#\n" +
      "\037NO_BATTLE_POINTS_CHEATS_ENABLED\020\003\022!\n\035NO" +
      "_BATTLE_POINTS_LOW_PRIORITY\020\004*\214\002\n\027DOTA_R" +
      "EPLAY_STATE_EVENT\022&\n\"DOTA_REPLAY_STATE_E" +
      "VENT_GAME_START\020\001\022)\n%DOTA_REPLAY_STATE_E",
      "VENT_STARTING_HORN\020\002\022\'\n#DOTA_REPLAY_STAT" +
      "E_EVENT_FIRST_BLOOD\020\003\022$\n DOTA_REPLAY_STA" +
      "TE_EVENT_SHOWCASE\020\004\022%\n!DOTA_REPLAY_STATE" +
      "_EVENT_POST_GAME\020\005\022(\n$DOTA_REPLAY_STATE_" +
      "EVENT_WAIT_FOR_MAP\020\006*\317\001\n\027DOTA_CHAT_INFOR" +
      "MATIONAL\022!\n\035INFO_COOP_BATTLE_POINTS_RULE" +
      "S\020\001\022#\n\037INFO_FROSTIVUS_ABANDON_REMINDER\020\002" +
      "\022\030\n\024INFO_RANKED_REMINDER\020\003\022+\n\'INFO_COOP_" +
      "LOW_PRIORITY_PASSIVE_REMINDER\020\004\022%\n!INFO_" +
      "CUSTOM_GAME_PENALTY_REMINDER\020\005*\340\003\n\026DOTA_",
      "ABILITY_PING_TYPE\022\026\n\022ABILITY_PING_READY\020" +
      "\001\022\025\n\021ABILITY_PING_MANA\020\002\022\031\n\025ABILITY_PING" +
      "_COOLDOWN\020\003\022\026\n\022ABILITY_PING_ENEMY\020\004\022\032\n\026A" +
      "BILITY_PING_UNLEARNED\020\005\022\033\n\027ABILITY_PING_" +
      "INBACKPACK\020\006\022\030\n\024ABILITY_PING_INSTASH\020\007\022\032" +
      "\n\026ABILITY_PING_ONCOURIER\020\010\022\025\n\021ABILITY_PI" +
      "NG_ALLY\020\t\022\034\n\030ABILITY_PING_LEARN_READY\020\n\022" +
      "\033\n\027ABILITY_PING_WILL_LEARN\020\013\022\035\n\031ABILITY_" +
      "PING_FUTURE_LEARN\020\014\022\036\n\032ABILITY_PING_NEUT" +
      "RAL_OFFER\020\r\022 \n\034ABILITY_PING_NEUTRAL_REQU",
      "EST\020\016\022\036\n\032ABILITY_PING_NEUTRAL_EQUIP\020\017\022\"\n" +
      "\036ABILITY_PING_INCOURIERBACKPACK\020\020*\345\001\n\023ED" +
      "otaEntityMessages\022\024\n\020DOTA_UNIT_SPEECH\020\000\022" +
      "\031\n\025DOTA_UNIT_SPEECH_MUTE\020\001\022\031\n\025DOTA_UNIT_" +
      "ADD_GESTURE\020\002\022\034\n\030DOTA_UNIT_REMOVE_GESTUR" +
      "E\020\003\022!\n\035DOTA_UNIT_REMOVE_ALL_GESTURES\020\004\022\032" +
      "\n\026DOTA_UNIT_FADE_GESTURE\020\006\022%\n!DOTA_UNIT_" +
      "SPEECH_CLIENTSIDE_RULES\020\007*\254\006\n\023DOTA_OVERH" +
      "EAD_ALERT\022\027\n\023OVERHEAD_ALERT_GOLD\020\000\022\027\n\023OV" +
      "ERHEAD_ALERT_DENY\020\001\022\033\n\027OVERHEAD_ALERT_CR",
      "ITICAL\020\002\022\025\n\021OVERHEAD_ALERT_XP\020\003\022%\n!OVERH" +
      "EAD_ALERT_BONUS_SPELL_DAMAGE\020\004\022\027\n\023OVERHE" +
      "AD_ALERT_MISS\020\005\022\031\n\025OVERHEAD_ALERT_DAMAGE" +
      "\020\006\022\030\n\024OVERHEAD_ALERT_EVADE\020\007\022\030\n\024OVERHEAD" +
      "_ALERT_BLOCK\020\010\022&\n\"OVERHEAD_ALERT_BONUS_P" +
      "OISON_DAMAGE\020\t\022\027\n\023OVERHEAD_ALERT_HEAL\020\n\022" +
      "\033\n\027OVERHEAD_ALERT_MANA_ADD\020\013\022\034\n\030OVERHEAD" +
      "_ALERT_MANA_LOSS\020\014\022!\n\035OVERHEAD_ALERT_LAS" +
      "T_HIT_EARLY\020\r\022!\n\035OVERHEAD_ALERT_LAST_HIT" +
      "_CLOSE\020\016\022 \n\034OVERHEAD_ALERT_LAST_HIT_MISS",
      "\020\017\022 \n\034OVERHEAD_ALERT_MAGICAL_BLOCK\020\020\022\"\n\036" +
      "OVERHEAD_ALERT_INCOMING_DAMAGE\020\021\022\"\n\036OVER" +
      "HEAD_ALERT_OUTGOING_DAMAGE\020\022\022!\n\035OVERHEAD" +
      "_ALERT_DISABLE_RESIST\020\023\022\030\n\024OVERHEAD_ALER" +
      "T_DEATH\020\024\022\032\n\026OVERHEAD_ALERT_BLOCKED\020\025\022 \n" +
      "\034OVERHEAD_ALERT_ITEM_RECEIVED\020\026\022\030\n\024OVERH" +
      "EAD_ALERT_SHARD\020\027\022\036\n\032OVERHEAD_ALERT_DEAD" +
      "LY_BLOW\020\030\022\035\n\031OVERHEAD_ALERT_FORCE_MISS\020\031" +
      "*k\n\021DOTA_ROSHAN_PHASE\022\027\n\023k_SRSP_ROSHAN_A" +
      "LIVE\020\000\022\034\n\030k_SRSP_ROSHAN_BASE_TIMER\020\001\022\037\n\033",
      "k_SRSP_ROSHAN_VISIBLE_TIMER\020\002*\201\004\n\026DOTA_P" +
      "OSITION_CATEGORY\022\026\n\022DOTA_POSITION_NONE\020\000" +
      "\022\035\n\031DOTA_POSITION_BOTTOM_LANE\020\001\022\032\n\026DOTA_" +
      "POSITION_MID_LANE\020\002\022\032\n\026DOTA_POSITION_TOP" +
      "_LANE\020\003\022 \n\034DOTA_POSITION_RADIANT_JUNGLE\020" +
      "\004\022\035\n\031DOTA_POSITION_DIRE_JUNGLE\020\005\022\"\n\036DOTA" +
      "_POSITION_RADIANT_ANCIENTS\020\006\022\037\n\033DOTA_POS" +
      "ITION_DIRE_ANCIENTS\020\007\022%\n!DOTA_POSITION_R" +
      "ADIANT_SECRET_SHOP\020\010\022\"\n\036DOTA_POSITION_DI" +
      "RE_SECRET_SHOP\020\t\022\027\n\023DOTA_POSITION_RIVER\020",
      "\n\022\034\n\030DOTA_POSITION_ROSHAN_PIT\020\013\022\036\n\032DOTA_" +
      "POSITION_RADIANT_BASE\020\014\022\033\n\027DOTA_POSITION" +
      "_DIRE_BASE\020\r\022\032\n\026DOTA_POSITION_FOUNTAIN\020\016" +
      "\022\027\n\023DOTA_POSITION_OTHER\020\017*\346\001\n\030DOTA_ABILI" +
      "TY_TARGET_TYPE\022\034\n\030DOTA_ABILITY_TARGET_NO" +
      "NE\020\000\022\034\n\030DOTA_ABILITY_TARGET_SELF\020\001\022!\n\035DO" +
      "TA_ABILITY_TARGET_ALLY_HERO\020\002\022\"\n\036DOTA_AB" +
      "ILITY_TARGET_ALLY_CREEP\020\003\022\"\n\036DOTA_ABILIT" +
      "Y_TARGET_ENEMY_HERO\020\004\022#\n\037DOTA_ABILITY_TA" +
      "RGET_ENEMY_CREEP\020\005*\230\010\n\rEHeroStatType\022\030\n\024",
      "k_EHeroStatType_None\020\000\022#\n\036k_EHeroStatTyp" +
      "e_AxeTotalDamage\020\320\017\022\'\n\"k_EHeroStatType_B" +
      "attleHungerDamage\020\321\017\022\'\n\"k_EHeroStatType_" +
      "CounterHelixDamage\020\322\017\022\'\n\"k_EHeroStatType" +
      "_CullingBladeDamage\020\323\017\022,\n\'k_EHeroStatTyp" +
      "e_BerserkersCallCastCount\020\324\017\0223\n.k_EHeroS" +
      "tatType_BerserkersCallHeroesHitAverage\020\325" +
      "\017\0220\n+k_EHeroStatType_BerserkersCallOther" +
      "UnitsHit\020\326\017\0223\n.k_EHeroStatType_Berserker" +
      "sCallHeroAttacksTaken\020\327\017\0224\n/k_EHeroStatT",
      "ype_BerserkersCallOtherAttacksTaken\020\330\017\022*" +
      "\n%k_EHeroStatType_BattleHungerCastCount\020" +
      "\331\017\0222\n-k_EHeroStatType_BattleHungerPotent" +
      "ialDuration\020\332\017\0220\n+k_EHeroStatType_Battle" +
      "HungerAverageDuration\020\333\017\022*\n%k_EHeroStatT" +
      "ype_CounterHelixProcCount\020\334\017\022.\n)k_EHeroS" +
      "tatType_CounterHelixHeroProcCount\020\335\017\0221\n," +
      "k_EHeroStatType_CounterHelixHeroesHitAve" +
      "rage\020\336\017\0223\n.k_EHeroStatType_CounterHelixO" +
      "therUnitsHitCount\020\337\017\022*\n%k_EHeroStatType_",
      "CullingBladeCastCount\020\340\017\022*\n%k_EHeroStatT" +
      "ype_CullingBladeKillCount\020\341\017\0224\n/k_EHeroS" +
      "tatType_CullingBladeAverageHealthCulled\020" +
      "\342\017\0227\n2k_EHeroStatType_CullingBladeAverag" +
      "eDamageAvailable\020\343\017\0220\n+k_EHeroStatType_C" +
      "ullingBladeHeroBuffAverage\020\344\017*\344\004\n\027EPlaye" +
      "rVoiceListenState\022\016\n\nkPVLS_None\020\000\022\032\n\026kPV" +
      "LS_DeniedChatBanned\020\001\022\027\n\023kPVLS_DeniedPar" +
      "tner\020\002\022&\n\"kPVLS_DeniedHLTVTalkerNotSpect" +
      "ator\020\003\022$\n kPVLS_DeniedHLTVNoTalkerPlayer",
      "ID\020\004\022(\n$kPVLS_DeniedHLTVTalkerNotBroadca" +
      "ster\020\005\022\035\n\031kPVLS_DeniedTeamSpectator\020\006\022\027\n" +
      "\023kPVLS_DeniedStudent\020\010\022\034\n\030kPVLS_DeniedPr" +
      "ivateCoach\020\t\022\020\n\014kPVLS_Denied\020@\022&\n\"kPVLS_" +
      "AllowHLTVTalkerIsBroadcaster\020A\022\034\n\030kPVLS_" +
      "AllowCoBroadcaster\020B\022\026\n\022kPVLS_AllowAllCh" +
      "at\020C\022\035\n\031kPVLS_AllowStudentToCoach\020D\022\034\n\030k" +
      "PVLS_AllowFellowStudent\020E\022\034\n\030kPVLS_Allow" +
      "TalkerIsCoach\020F\022\034\n\030kPVLS_AllowCoachHearT" +
      "eam\020G\022\027\n\023kPVLS_AllowSameTeam\020H\022\027\n\023kPVLS_",
      "AllowShowcase\020I\022\033\n\027kPVLS_AllowPrivateCoa" +
      "ch\020J*B\n\020EProjectionEvent\022\022\n\016ePE_FirstBlo" +
      "od\020\000\022\032\n\026ePE_Killstreak_godlike\020\001B=\n)skad" +
      "istats.clarity.wire.dota.common.protoB\020D" +
      "OTAUserMessages"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.getDescriptor(),
          skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.getDescriptor(),
          skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.getDescriptor(),
        }, assigner);
    internal_static_CDOTAUserMsg_SwapVerify_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_CDOTAUserMsg_SwapVerify_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SwapVerify_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_ChatEvent_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_CDOTAUserMsg_ChatEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatEvent_descriptor,
        new java.lang.String[] { "Type", "Value", "Playerid1", "Playerid2", "Playerid3", "Playerid4", "Playerid5", "Playerid6", "Value2", "Value3", });
    internal_static_CDOTAUserMsg_BotChat_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_CDOTAUserMsg_BotChat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_BotChat_descriptor,
        new java.lang.String[] { "PlayerId", "Format", "Message", "Target", "TeamOnly", });
    internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_CDOTAUserMsg_CombatLogBulkData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CombatLogBulkData_descriptor,
        new java.lang.String[] { "CombatEntries", "Timestamp", "Duration", "PlayerId", "RequestTime", });
    internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_CDOTAUserMsg_ProjectileParticleCPData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ProjectileParticleCPData_descriptor,
        new java.lang.String[] { "ControlPoint", "Vector", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor,
        new java.lang.String[] { "Attackers", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor =
      internal_static_CDOTAUserMsg_MiniKillCamInfo_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor,
        new java.lang.String[] { "Attacker", "TotalDamage", "Abilities", "AttackerName", });
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor =
      internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MiniKillCamInfo_Attacker_Ability_descriptor,
        new java.lang.String[] { "AbilityId", "Damage", });
    internal_static_CDOTAUserMsg_GlobalLightColor_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_CDOTAUserMsg_GlobalLightColor_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlobalLightColor_descriptor,
        new java.lang.String[] { "Color", "Duration", });
    internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_CDOTAUserMsg_GlobalLightDirection_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlobalLightDirection_descriptor,
        new java.lang.String[] { "Direction", "Duration", });
    internal_static_CDOTAUserMsg_LocationPing_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_CDOTAUserMsg_LocationPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_LocationPing_descriptor,
        new java.lang.String[] { "PlayerId", "LocationPing", });
    internal_static_CDOTAUserMsg_PingConfirmation_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_CDOTAUserMsg_PingConfirmation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PingConfirmation_descriptor,
        new java.lang.String[] { "PlayerIdOfOriginalPinger", "EntityIndex", "IconType", "Location", });
    internal_static_CDOTAUserMsg_ItemAlert_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_CDOTAUserMsg_ItemAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemAlert_descriptor,
        new java.lang.String[] { "PlayerId", "ItemAlert", });
    internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_CDOTAUserMsg_EnemyItemAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EnemyItemAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetPlayerId", "ItemAbilityId", "RuneType", "EntityId", "ItemLevel", "PrimaryCharges", "SecondaryCharges", });
    internal_static_CDOTAUserMsg_ModifierAlert_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_CDOTAUserMsg_ModifierAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ModifierAlert_descriptor,
        new java.lang.String[] { "PlayerId", "ClassName", "StackCount", "IsDebuff", "TargetEntindex", "SecondsRemaining", });
    internal_static_CDOTAUserMsg_HPManaAlert_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_CDOTAUserMsg_HPManaAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HPManaAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", "ShowRawValues", });
    internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_CDOTAUserMsg_NeutralCampAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_NeutralCampAlert_descriptor,
        new java.lang.String[] { "PlayerId", "SpawnerEntindex", "UnitEntindex", "StackCount", "CampType", "StackRequest", "StackIntention", });
    internal_static_CDOTAUserMsg_GlyphAlert_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_CDOTAUserMsg_GlyphAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GlyphAlert_descriptor,
        new java.lang.String[] { "PlayerId", "Negative", });
    internal_static_CDOTAUserMsg_RadarAlert_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_CDOTAUserMsg_RadarAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RadarAlert_descriptor,
        new java.lang.String[] { "PlayerId", "Negative", });
    internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_CDOTAUserMsg_WillPurchaseAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WillPurchaseAlert_descriptor,
        new java.lang.String[] { "ItemAbilityId", "PlayerId", "GoldRemaining", "SuggestionPlayerId", });
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_CDOTAUserMsg_EmptyTeleportAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EmptyTeleportAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "CooldownSeconds", });
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MarsArenaOfBloodAttack_descriptor,
        new java.lang.String[] { "SourceEhandle", "TargetEhandle", "WarriorIndex", });
    internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_CDOTAEntityMsg_InvokerSpellCast_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAEntityMsg_InvokerSpellCast_descriptor,
        new java.lang.String[] { "EntityMsg", "CastActivity", });
    internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor =
      getDescriptor().getMessageTypes().get(21);
    internal_static_CDOTAUserMsg_BuyBackStateAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_BuyBackStateAlert_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor =
      getDescriptor().getMessageTypes().get(22);
    internal_static_CDOTAUserMsg_QuickBuyAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QuickBuyAlert_descriptor,
        new java.lang.String[] { "PlayerId", "ItemAbilityId", "GoldCost", "ItemCooldownSeconds", "ShowBuyback", });
    internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor =
      getDescriptor().getMessageTypes().get(23);
    internal_static_CDOTAUserMsg_CourierKilledAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor,
        new java.lang.String[] { "Team", "GoldValue", "EntityHandle", "Timestamp", "LostItems", "KillerPlayerId", "OwningPlayerId", });
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor =
      internal_static_CDOTAUserMsg_CourierKilledAlert_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CourierKilledAlert_LostItem_descriptor,
        new java.lang.String[] { "ItemAbilityId", "Quantity", });
    internal_static_CDOTAUserMsg_MinimapEvent_descriptor =
      getDescriptor().getMessageTypes().get(24);
    internal_static_CDOTAUserMsg_MinimapEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MinimapEvent_descriptor,
        new java.lang.String[] { "EventType", "EntityHandle", "X", "Y", "Duration", "TargetEntityHandle", });
    internal_static_CDOTAUserMsg_MapLine_descriptor =
      getDescriptor().getMessageTypes().get(25);
    internal_static_CDOTAUserMsg_MapLine_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MapLine_descriptor,
        new java.lang.String[] { "PlayerId", "Mapline", });
    internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor =
      getDescriptor().getMessageTypes().get(26);
    internal_static_CDOTAUserMsg_CreateLinearProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_CreateLinearProjectile_descriptor,
        new java.lang.String[] { "Origin", "Velocity", "Latency", "Entindex", "ParticleIndex", "Handle", "Acceleration", "MaxSpeed", "FowRadius", "StickyFowReveal", "Distance", "Colorgemcolor", "ParticleCpData", });
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor =
      getDescriptor().getMessageTypes().get(27);
    internal_static_CDOTAUserMsg_DestroyLinearProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DestroyLinearProjectile_descriptor,
        new java.lang.String[] { "Handle", });
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor =
      getDescriptor().getMessageTypes().get(28);
    internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DodgeTrackingProjectiles_descriptor,
        new java.lang.String[] { "Entindex", "AttacksOnly", });
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor =
      getDescriptor().getMessageTypes().get(29);
    internal_static_CDOTAUserMsg_SpectatorPlayerClick_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SpectatorPlayerClick_descriptor,
        new java.lang.String[] { "Entindex", "OrderType", "TargetIndex", });
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor =
      getDescriptor().getMessageTypes().get(30);
    internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SpectatorPlayerUnitOrders_descriptor,
        new java.lang.String[] { "Entindex", "OrderType", "Units", "TargetIndex", "AbilityId", "Position", "Queue", "SequenceNumber", "Flags", });
    internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor =
      getDescriptor().getMessageTypes().get(31);
    internal_static_CDOTAUserMsg_NevermoreRequiem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_NevermoreRequiem_descriptor,
        new java.lang.String[] { "EntityHandle", "Lines", "Origin", "Reverse", });
    internal_static_CDOTAUserMsg_InvalidCommand_descriptor =
      getDescriptor().getMessageTypes().get(32);
    internal_static_CDOTAUserMsg_InvalidCommand_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_InvalidCommand_descriptor,
        new java.lang.String[] { "Message", "SequenceNumber", });
    internal_static_CDOTAUserMsg_HudError_descriptor =
      getDescriptor().getMessageTypes().get(33);
    internal_static_CDOTAUserMsg_HudError_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HudError_descriptor,
        new java.lang.String[] { "OrderId", "SequenceNumber", });
    internal_static_CDOTAUserMsg_SharedCooldown_descriptor =
      getDescriptor().getMessageTypes().get(34);
    internal_static_CDOTAUserMsg_SharedCooldown_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SharedCooldown_descriptor,
        new java.lang.String[] { "Entindex", "Name", "Cooldown", "NameIndex", });
    internal_static_CDOTAUserMsg_HalloweenDrops_descriptor =
      getDescriptor().getMessageTypes().get(35);
    internal_static_CDOTAUserMsg_HalloweenDrops_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HalloweenDrops_descriptor,
        new java.lang.String[] { "ItemDefs", "PlayerIds", "PrizeList", });
    internal_static_CDOTAUserMsg_PredictionResult_descriptor =
      getDescriptor().getMessageTypes().get(36);
    internal_static_CDOTAUserMsg_PredictionResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PredictionResult_descriptor,
        new java.lang.String[] { "AccountId", "MatchId", "Correct", "Predictions", });
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor =
      internal_static_CDOTAUserMsg_PredictionResult_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_PredictionResult_Prediction_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PredictionResult_Prediction_descriptor,
        new java.lang.String[] { "ItemDef", "NumCorrect", "NumFails", "Result", "GrantedItemDefs", });
    internal_static_CDOTAResponseQuerySerialized_descriptor =
      getDescriptor().getMessageTypes().get(37);
    internal_static_CDOTAResponseQuerySerialized_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAResponseQuerySerialized_descriptor,
        new java.lang.String[] { "Facts", });
    internal_static_CDOTAResponseQuerySerialized_Fact_descriptor =
      internal_static_CDOTAResponseQuerySerialized_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAResponseQuerySerialized_Fact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAResponseQuerySerialized_Fact_descriptor,
        new java.lang.String[] { "Key", "Valtype", "ValNumeric", "ValString", });
    internal_static_CDOTASpeechMatchOnClient_descriptor =
      getDescriptor().getMessageTypes().get(38);
    internal_static_CDOTASpeechMatchOnClient_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTASpeechMatchOnClient_descriptor,
        new java.lang.String[] { "Concept", "RecipientType", "Responsequery", "Randomseed", });
    internal_static_CDOTAUserMsg_UnitEvent_descriptor =
      getDescriptor().getMessageTypes().get(39);
    internal_static_CDOTAUserMsg_UnitEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_descriptor,
        new java.lang.String[] { "MsgType", "EntityIndex", "Speech", "SpeechMute", "AddGesture", "RemoveGesture", "BloodImpact", "FadeGesture", "SpeechMatchOnClient", });
    internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_UnitEvent_Interval_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_Interval_descriptor,
        new java.lang.String[] { "Start", "Range", });
    internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(1);
    internal_static_CDOTAUserMsg_UnitEvent_Speech_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_Speech_descriptor,
        new java.lang.String[] { "Concept", "Response", "RecipientType", "Level", "Muteable", "Predelay", "Flags", });
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(2);
    internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_SpeechMute_descriptor,
        new java.lang.String[] { "Delay", });
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(3);
    internal_static_CDOTAUserMsg_UnitEvent_AddGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_AddGesture_descriptor,
        new java.lang.String[] { "Activity", "Slot", "FadeIn", "FadeOut", "PlaybackRate", "SequenceVariant", });
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(4);
    internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_RemoveGesture_descriptor,
        new java.lang.String[] { "Activity", });
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(5);
    internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_BloodImpact_descriptor,
        new java.lang.String[] { "Scale", "XNormal", "YNormal", });
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor =
      internal_static_CDOTAUserMsg_UnitEvent_descriptor.getNestedTypes().get(6);
    internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UnitEvent_FadeGesture_descriptor,
        new java.lang.String[] { "Activity", });
    internal_static_CDOTAUserMsg_ItemPurchased_descriptor =
      getDescriptor().getMessageTypes().get(40);
    internal_static_CDOTAUserMsg_ItemPurchased_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemPurchased_descriptor,
        new java.lang.String[] { "ItemAbilityId", });
    internal_static_CDOTAUserMsg_ItemSold_descriptor =
      getDescriptor().getMessageTypes().get(41);
    internal_static_CDOTAUserMsg_ItemSold_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemSold_descriptor,
        new java.lang.String[] { "ItemAbilityId", });
    internal_static_CDOTAUserMsg_ItemFound_descriptor =
      getDescriptor().getMessageTypes().get(42);
    internal_static_CDOTAUserMsg_ItemFound_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ItemFound_descriptor,
        new java.lang.String[] { "Player", "Quality", "Rarity", "Method", "Itemdef", });
    internal_static_CDOTAUserMsg_OverheadEvent_descriptor =
      getDescriptor().getMessageTypes().get(43);
    internal_static_CDOTAUserMsg_OverheadEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OverheadEvent_descriptor,
        new java.lang.String[] { "MessageType", "Value", "TargetPlayerEntindex", "TargetEntindex", "SourcePlayerEntindex", });
    internal_static_CDOTAUserMsg_WorldLine_descriptor =
      getDescriptor().getMessageTypes().get(44);
    internal_static_CDOTAUserMsg_WorldLine_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WorldLine_descriptor,
        new java.lang.String[] { "PlayerId", "Worldline", });
    internal_static_CDOTAUserMsg_ChatWheel_descriptor =
      getDescriptor().getMessageTypes().get(45);
    internal_static_CDOTAUserMsg_ChatWheel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatWheel_descriptor,
        new java.lang.String[] { "ChatMessageId", "PlayerId", "AccountId", "ParamHeroId", "EmoticonId", });
    internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor =
      getDescriptor().getMessageTypes().get(46);
    internal_static_CDOTAUserMsg_GamerulesStateChanged_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GamerulesStateChanged_descriptor,
        new java.lang.String[] { "State", });
    internal_static_CDOTAUserMsg_SendStatPopup_descriptor =
      getDescriptor().getMessageTypes().get(47);
    internal_static_CDOTAUserMsg_SendStatPopup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendStatPopup_descriptor,
        new java.lang.String[] { "PlayerId", "Statpopup", });
    internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor =
      getDescriptor().getMessageTypes().get(48);
    internal_static_CDOTAUserMsg_DismissAllStatPopups_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DismissAllStatPopups_descriptor,
        new java.lang.String[] { "Dismissallmsg", });
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor =
      getDescriptor().getMessageTypes().get(49);
    internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendRoshanSpectatorPhase_descriptor,
        new java.lang.String[] { "Phase", "PhaseStartTime", "PhaseLength", });
    internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor =
      getDescriptor().getMessageTypes().get(50);
    internal_static_CDOTAUserMsg_SendRoshanPopup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SendRoshanPopup_descriptor,
        new java.lang.String[] { "Reclaimed", "Gametime", });
    internal_static_CDOTAUserMsg_TE_Projectile_descriptor =
      getDescriptor().getMessageTypes().get(51);
    internal_static_CDOTAUserMsg_TE_Projectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_Projectile_descriptor,
        new java.lang.String[] { "Source", "Target", "MoveSpeed", "SourceAttachment", "ParticleSystemHandle", "Dodgeable", "IsAttack", "ExpireTime", "Maximpacttime", "Colorgemcolor", "LaunchTick", "Handle", "TargetLoc", "ParticleCpData", "AdditionalParticleSystemHandle", "OriginalMoveSpeed", "Ability", });
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor =
      getDescriptor().getMessageTypes().get(52);
    internal_static_CDOTAUserMsg_TE_ProjectileLoc_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_ProjectileLoc_descriptor,
        new java.lang.String[] { "SourceLoc", "Target", "MoveSpeed", "ParticleSystemHandle", "Dodgeable", "IsAttack", "ExpireTime", "TargetLoc", "Colorgemcolor", "LaunchTick", "Handle", "Source", "SourceAttachment", "ParticleCpData", "AdditionalParticleSystemHandle", "OriginalMoveSpeed", });
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor =
      getDescriptor().getMessageTypes().get(53);
    internal_static_CDOTAUserMsg_TE_DestroyProjectile_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_DestroyProjectile_descriptor,
        new java.lang.String[] { "Handle", });
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor =
      getDescriptor().getMessageTypes().get(54);
    internal_static_CDOTAUserMsg_TE_DotaBloodImpact_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_DotaBloodImpact_descriptor,
        new java.lang.String[] { "Entity", "Scale", "Xnormal", "Ynormal", });
    internal_static_CDOTAUserMsg_AbilityPing_descriptor =
      getDescriptor().getMessageTypes().get(55);
    internal_static_CDOTAUserMsg_AbilityPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AbilityPing_descriptor,
        new java.lang.String[] { "PlayerId", "AbilityId", "Type", "CooldownSeconds", "Level", "Passive", "ManaNeeded", "EntityId", "PrimaryCharges", "SecondaryCharges", "CasterId", "CtrlHeld", "ReclaimTime", "OwnerEntity", });
    internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor =
      getDescriptor().getMessageTypes().get(56);
    internal_static_CDOTAUserMsg_TE_UnitAnimation_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_UnitAnimation_descriptor,
        new java.lang.String[] { "Entity", "SequenceVariant", "Playbackrate", "Castpoint", "Type", "Activity", "LagCompensationTime", });
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor =
      getDescriptor().getMessageTypes().get(57);
    internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TE_UnitAnimationEnd_descriptor,
        new java.lang.String[] { "Entity", "Snap", });
    internal_static_CDOTAUserMsg_PlayerMMR_descriptor =
      getDescriptor().getMessageTypes().get(58);
    internal_static_CDOTAUserMsg_PlayerMMR_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PlayerMMR_descriptor,
        new java.lang.String[] { "Mmr", });
    internal_static_CDOTAUserMsg_AbilitySteal_descriptor =
      getDescriptor().getMessageTypes().get(59);
    internal_static_CDOTAUserMsg_AbilitySteal_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AbilitySteal_descriptor,
        new java.lang.String[] { "PlayerId", "AbilityId", "AbilityLevel", });
    internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor =
      getDescriptor().getMessageTypes().get(60);
    internal_static_CDOTAUserMsg_StatsHeroLookup_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroLookup_descriptor,
        new java.lang.String[] { "PlayerId", "HeroId", "HeroName", "Persona", });
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor =
      getDescriptor().getMessageTypes().get(61);
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor,
        new java.lang.String[] { "AveragePosition", "PositionDetails", });
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor =
      internal_static_CDOTAUserMsg_StatsHeroPositionInfo_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsHeroPositionInfo_PositionPair_descriptor,
        new java.lang.String[] { "PositionCategory", "PositionCount", });
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor =
      getDescriptor().getMessageTypes().get(62);
    internal_static_CDOTAUserMsg_StatsPlayerKillShare_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsPlayerKillShare_descriptor,
        new java.lang.String[] { "PlayerId", "KillSharePercent", "PlayerLocX", "PlayerLocY", "HealthPercent", "ManaPercent", });
    internal_static_CDOTAUserMsg_StatsKillDetails_descriptor =
      getDescriptor().getMessageTypes().get(63);
    internal_static_CDOTAUserMsg_StatsKillDetails_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_StatsKillDetails_descriptor,
        new java.lang.String[] { "VictimId", "KillShares", "DamageToKill", "EffectiveHealth", "DeathTime", "KillerId", });
    internal_static_CMsgHeroAbilityStat_descriptor =
      getDescriptor().getMessageTypes().get(64);
    internal_static_CMsgHeroAbilityStat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgHeroAbilityStat_descriptor,
        new java.lang.String[] { "StatType", "IntValue", "FloatValue", });
    internal_static_CMsgCombatAnalyzerPlayerStat_descriptor =
      getDescriptor().getMessageTypes().get(65);
    internal_static_CMsgCombatAnalyzerPlayerStat_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgCombatAnalyzerPlayerStat_descriptor,
        new java.lang.String[] { "AccountId", "HeroAbilityStats", });
    internal_static_CMsgCombatAnalyzerStats_descriptor =
      getDescriptor().getMessageTypes().get(66);
    internal_static_CMsgCombatAnalyzerStats_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgCombatAnalyzerStats_descriptor,
        new java.lang.String[] { "MatchId", "PlayerStats", });
    internal_static_CDOTAUserMsg_ProjectionAbility_descriptor =
      getDescriptor().getMessageTypes().get(67);
    internal_static_CDOTAUserMsg_ProjectionAbility_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ProjectionAbility_descriptor,
        new java.lang.String[] { "AbilityId", "CasterEntIndex", "CasterTeam", "ChannelEnd", "Origin", "TrackCasterOnly", "EndTime", "VictimEntIndex", });
    internal_static_CDOTAUserMsg_ProjectionEvent_descriptor =
      getDescriptor().getMessageTypes().get(68);
    internal_static_CDOTAUserMsg_ProjectionEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ProjectionEvent_descriptor,
        new java.lang.String[] { "EventId", "Team", });
    internal_static_CDOTAUserMsg_XPAlert_descriptor =
      getDescriptor().getMessageTypes().get(69);
    internal_static_CDOTAUserMsg_XPAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_XPAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", });
    internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor =
      getDescriptor().getMessageTypes().get(70);
    internal_static_CDOTAUserMsg_TalentTreeAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TalentTreeAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TargetEntindex", "AbilityId", "Slot", "Learned", });
    internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor =
      getDescriptor().getMessageTypes().get(71);
    internal_static_CDOTAUserMsg_UpdateQuestProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_UpdateQuestProgress_descriptor,
        new java.lang.String[] { });
    internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor =
      getDescriptor().getMessageTypes().get(72);
    internal_static_CDOTAUserMsg_KillcamDamageTaken_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_KillcamDamageTaken_descriptor,
        new java.lang.String[] { "PlayerId", "DamageTaken", "ItemType", "ItemAbilityId", "HeroName", "DamageColor", });
    internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor =
      getDescriptor().getMessageTypes().get(73);
    internal_static_CDOTAUserMsg_SelectPenaltyGold_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SelectPenaltyGold_descriptor,
        new java.lang.String[] { "PlayerId", "Cost", });
    internal_static_CDOTAUserMsg_RollDiceResult_descriptor =
      getDescriptor().getMessageTypes().get(74);
    internal_static_CDOTAUserMsg_RollDiceResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RollDiceResult_descriptor,
        new java.lang.String[] { "PlayerId", "ChannelType", "RollMin", "RollMax", "Result", });
    internal_static_CDOTAUserMsg_FlipCoinResult_descriptor =
      getDescriptor().getMessageTypes().get(75);
    internal_static_CDOTAUserMsg_FlipCoinResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_FlipCoinResult_descriptor,
        new java.lang.String[] { "PlayerId", "ChannelType", "Result", });
    internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor =
      getDescriptor().getMessageTypes().get(76);
    internal_static_CDOTAUserMessage_TeamCaptainChanged_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMessage_TeamCaptainChanged_descriptor,
        new java.lang.String[] { "Team", "CaptainPlayerId", });
    internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor =
      getDescriptor().getMessageTypes().get(77);
    internal_static_CDOTAUserMsg_HeroRelicProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HeroRelicProgress_descriptor,
        new java.lang.String[] { "HeroRelicType", "Value", "Ehandle", "EventId", "ValueDisplay", });
    internal_static_CDOTAUserMsg_DamageReport_descriptor =
      getDescriptor().getMessageTypes().get(78);
    internal_static_CDOTAUserMsg_DamageReport_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DamageReport_descriptor,
        new java.lang.String[] { "PlayerId", "TargetHeroId", "SourceHeroId", "DamageAmount", "Broadcast", });
    internal_static_CDOTAUserMsg_SalutePlayer_descriptor =
      getDescriptor().getMessageTypes().get(79);
    internal_static_CDOTAUserMsg_SalutePlayer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_SalutePlayer_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "TipAmount", "EventId", "CustomTipStyle", });
    internal_static_CDOTAUserMsg_GiftPlayer_descriptor =
      getDescriptor().getMessageTypes().get(80);
    internal_static_CDOTAUserMsg_GiftPlayer_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GiftPlayer_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "GiftItemDefIndex", });
    internal_static_CDOTAUserMsg_TipAlert_descriptor =
      getDescriptor().getMessageTypes().get(81);
    internal_static_CDOTAUserMsg_TipAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_TipAlert_descriptor,
        new java.lang.String[] { "PlayerId", "TipText", });
    internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor =
      getDescriptor().getMessageTypes().get(82);
    internal_static_CDOTAUserMsg_ESArcanaCombo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ESArcanaCombo_descriptor,
        new java.lang.String[] { "Ehandle", "ComboCount", "ArcanaLevel", });
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor =
      getDescriptor().getMessageTypes().get(83);
    internal_static_CDOTAUserMsg_ESArcanaComboSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ESArcanaComboSummary_descriptor,
        new java.lang.String[] { "Ehandle", "ComboCount", "DamageAmount", });
    internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor =
      getDescriptor().getMessageTypes().get(84);
    internal_static_CDOTAUserMsg_OMArcanaCombo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OMArcanaCombo_descriptor,
        new java.lang.String[] { "Ehandle", "MulticastAmount", "ArcanaLevel", "MulticastChance", });
    internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor =
      getDescriptor().getMessageTypes().get(85);
    internal_static_CDOTAUserMsg_HighFiveCompleted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HighFiveCompleted_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", "SpecialHighFive", "SpecialEntindex", });
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor =
      getDescriptor().getMessageTypes().get(86);
    internal_static_CDOTAUserMsg_HighFiveLeftHanging_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HighFiveLeftHanging_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_ShovelUnearth_descriptor =
      getDescriptor().getMessageTypes().get(87);
    internal_static_CDOTAUserMsg_ShovelUnearth_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ShovelUnearth_descriptor,
        new java.lang.String[] { "PlayerId", "AllChat", "Locstring", "Quantity", });
    internal_static_CDOTAUserMsg_AllStarEvent_descriptor =
      getDescriptor().getMessageTypes().get(88);
    internal_static_CDOTAUserMsg_AllStarEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AllStarEvent_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "PointAmount", "EventId", "PlayerScores", });
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor =
      internal_static_CDOTAUserMsg_AllStarEvent_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AllStarEvent_PlayerScore_descriptor,
        new java.lang.String[] { "PlayerId", "ScoreSansKda", });
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor =
      getDescriptor().getMessageTypes().get(89);
    internal_static_CDOTAUserMsg_QueuedOrderRemoved_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QueuedOrderRemoved_descriptor,
        new java.lang.String[] { "UnitOrderSequence", });
    internal_static_CDOTAUserMsg_DebugChallenge_descriptor =
      getDescriptor().getMessageTypes().get(90);
    internal_static_CDOTAUserMsg_DebugChallenge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DebugChallenge_descriptor,
        new java.lang.String[] { "ChallengeType", "ChallengeQueryId", "EventId", "InstanceId", "ChallengeVar0", "ChallengeVar1", "ChallengeMaxRank", });
    internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor =
      getDescriptor().getMessageTypes().get(91);
    internal_static_CDOTAUserMsg_FoundNeutralItem_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_FoundNeutralItem_descriptor,
        new java.lang.String[] { "PlayerId", "ItemAbilityId", "ItemTier", "TierItemCount", });
    internal_static_CDOTAUserMsg_OutpostCaptured_descriptor =
      getDescriptor().getMessageTypes().get(92);
    internal_static_CDOTAUserMsg_OutpostCaptured_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OutpostCaptured_descriptor,
        new java.lang.String[] { "OutpostEntindex", "TeamId", });
    internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor =
      getDescriptor().getMessageTypes().get(93);
    internal_static_CDOTAUserMsg_OutpostGrantedXP_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_OutpostGrantedXP_descriptor,
        new java.lang.String[] { "TeamId", "XpAmount", });
    internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor =
      getDescriptor().getMessageTypes().get(94);
    internal_static_CDOTAUserMsg_MoveCameraToUnit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MoveCameraToUnit_descriptor,
        new java.lang.String[] { "UnitEhandle", });
    internal_static_CDOTAUserMsg_PauseMinigameData_descriptor =
      getDescriptor().getMessageTypes().get(95);
    internal_static_CDOTAUserMsg_PauseMinigameData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PauseMinigameData_descriptor,
        new java.lang.String[] { "DataBits", });
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor =
      internal_static_CDOTAUserMsg_PauseMinigameData_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PauseMinigameData_DataBit_descriptor,
        new java.lang.String[] { "Index", "Data", "DataExtra", });
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor =
      getDescriptor().getMessageTypes().get(96);
    internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_VersusScene_PlayerBehavior_descriptor,
        new java.lang.String[] { "PlayerId", "Behavior", "PlayActivity", "ChatWheel", "PlaybackRate", });
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor =
      getDescriptor().getMessageTypes().get(97);
    internal_static_CDOTAUserMsg_QoP_ArcanaSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_QoP_ArcanaSummary_descriptor,
        new java.lang.String[] { "Ehandle", "ArcanaLevel", "PlayersHit", "PlayersKilled", });
    internal_static_CDOTAUserMsg_HotPotato_Created_descriptor =
      getDescriptor().getMessageTypes().get(98);
    internal_static_CDOTAUserMsg_HotPotato_Created_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HotPotato_Created_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", });
    internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor =
      getDescriptor().getMessageTypes().get(99);
    internal_static_CDOTAUserMsg_HotPotato_Exploded_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_HotPotato_Exploded_descriptor,
        new java.lang.String[] { "PlayerId", });
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor =
      getDescriptor().getMessageTypes().get(100);
    internal_static_CDOTAUserMsg_WK_Arcana_Progress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WK_Arcana_Progress_descriptor,
        new java.lang.String[] { "Ehandle", "ArcanaLevel", "HeroId", });
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor =
      getDescriptor().getMessageTypes().get(101);
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor,
        new java.lang.String[] { "PlayerProgress", "GuildId", "ChallengeInstanceId", "ChallengeParameter", "ChallengeType", "ChallengeProgressAtStart", "Complete", });
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor =
      internal_static_CDOTAUserMsg_GuildChallenge_Progress_descriptor.getNestedTypes().get(0);
    internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_GuildChallenge_Progress_PlayerProgress_descriptor,
        new java.lang.String[] { "PlayerId", "Progress", });
    internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor =
      getDescriptor().getMessageTypes().get(102);
    internal_static_CDOTAUserMsg_WRArcanaProgress_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WRArcanaProgress_descriptor,
        new java.lang.String[] { "Ehandle", "TargetEhandle", "ArrowsLanded", "DamageDealt", "TargetHp", "TargetMaxHp", "ArcanaLevel", });
    internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor =
      getDescriptor().getMessageTypes().get(103);
    internal_static_CDOTAUserMsg_WRArcanaSummary_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_WRArcanaSummary_descriptor,
        new java.lang.String[] { "Ehandle", "TargetEhandle", "ArrowsLanded", "DamageDealt", "TargetHp", "TargetMaxHp", "ArcanaLevel", "Success", });
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor =
      getDescriptor().getMessageTypes().get(104);
    internal_static_CDOTAUserMsg_EmptyItemSlotAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_EmptyItemSlotAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "SlotIndex", "CooldownSeconds", });
    internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor =
      getDescriptor().getMessageTypes().get(105);
    internal_static_CDOTAUserMsg_AghsStatusAlert_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_AghsStatusAlert_descriptor,
        new java.lang.String[] { "SourcePlayerId", "TargetPlayerId", "TargetEntindex", "AlertType", "HasScepter", "HasShard", });
    internal_static_CDOTAUserMsg_MutedPlayers_descriptor =
      getDescriptor().getMessageTypes().get(106);
    internal_static_CDOTAUserMsg_MutedPlayers_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MutedPlayers_descriptor,
        new java.lang.String[] { "TextMutedPlayerIds", "VoiceMutedPlayerIds", });
    internal_static_CDOTAUserMsg_ContextualTip_descriptor =
      getDescriptor().getMessageTypes().get(107);
    internal_static_CDOTAUserMsg_ContextualTip_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ContextualTip_descriptor,
        new java.lang.String[] { "TipId", "ReferencedAbilities", "ReferencedUnits", "PanoramaClasses", "ForceAnnotation", "Variant", "IntParam", "IntParam2", "FloatParam", "FloatParam2", "StringParam", "StringParam2", "TipTextOverride", "TipAnnotationOverride", "PanoramaSnippet", });
    internal_static_CDOTAUserMsg_ChatMessage_descriptor =
      getDescriptor().getMessageTypes().get(108);
    internal_static_CDOTAUserMsg_ChatMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_ChatMessage_descriptor,
        new java.lang.String[] { "SourcePlayerId", "ChannelType", "MessageText", });
    internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor =
      getDescriptor().getMessageTypes().get(109);
    internal_static_CDOTAUserMsg_RockPaperScissorsStarted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RockPaperScissorsStarted_descriptor,
        new java.lang.String[] { "PlayerIdSource", "PlayerIdTarget", });
    internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor =
      getDescriptor().getMessageTypes().get(110);
    internal_static_CDOTAUserMsg_RockPaperScissorsFinished_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_RockPaperScissorsFinished_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", "Player1Choice", "Player2Choice", });
    internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor =
      getDescriptor().getMessageTypes().get(111);
    internal_static_CDOTAUserMsg_DuelOpponentKilled_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DuelOpponentKilled_descriptor,
        new java.lang.String[] { "PlayerIdWinner", "PlayerIdLoser", });
    internal_static_CDOTAUserMsg_DuelAccepted_descriptor =
      getDescriptor().getMessageTypes().get(112);
    internal_static_CDOTAUserMsg_DuelAccepted_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DuelAccepted_descriptor,
        new java.lang.String[] { "PlayerId1", "PlayerId2", });
    internal_static_CDOTAUserMsg_DuelRequested_descriptor =
      getDescriptor().getMessageTypes().get(113);
    internal_static_CDOTAUserMsg_DuelRequested_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_DuelRequested_descriptor,
        new java.lang.String[] { "PlayerIdRequestor", });
    internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor =
      getDescriptor().getMessageTypes().get(114);
    internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_MuertaReleaseEvent_AssignedTargetKilled_descriptor,
        new java.lang.String[] { "PlayerIdKiller", "PlayerIdTarget", "Points", "PointsTotal", "LastHit", });
    internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor =
      getDescriptor().getMessageTypes().get(115);
    internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PlayerDraftSuggestPick_descriptor,
        new java.lang.String[] { "PlayerId", "SuggestionPlayerId", });
    internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor =
      getDescriptor().getMessageTypes().get(116);
    internal_static_CDOTAUserMsg_PlayerDraftPick_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_PlayerDraftPick_descriptor,
        new java.lang.String[] { "PlayerIdCaptain", "PlayerIdTarget", "Team", });
    internal_static_CDOTAUserMsg_FacetPing_descriptor =
      getDescriptor().getMessageTypes().get(117);
    internal_static_CDOTAUserMsg_FacetPing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_FacetPing_descriptor,
        new java.lang.String[] { "PlayerId", "FacetStrhash", "EntityId", "AllChat", });
    internal_static_CDOTAUserMsg_InnatePing_descriptor =
      getDescriptor().getMessageTypes().get(118);
    internal_static_CDOTAUserMsg_InnatePing_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDOTAUserMsg_InnatePing_descriptor,
        new java.lang.String[] { "PlayerId", "EntityId", "AllChat", });
    internal_static_CMsgDOTACombatLogEntry_descriptor =
      getDescriptor().getMessageTypes().get(119);
    internal_static_CMsgDOTACombatLogEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CMsgDOTACombatLogEntry_descriptor,
        new java.lang.String[] { "Type", "TargetName", "TargetSourceName", "AttackerName", "DamageSourceName", "InflictorName", "IsAttackerIllusion", "IsAttackerHero", "IsTargetIllusion", "IsTargetHero", "IsVisibleRadiant", "IsVisibleDire", "Value", "Health", "Timestamp", "StunDuration", "SlowDuration", "IsAbilityToggleOn", "IsAbilityToggleOff", "AbilityLevel", "LocationX", "LocationY", "GoldReason", "TimestampRaw", "ModifierDuration", "XpReason", "LastHits", "AttackerTeam", "TargetTeam", "ObsWardsPlaced", "AssistPlayer0", "AssistPlayer1", "AssistPlayer2", "AssistPlayer3", "StackCount", "HiddenModifier", "IsTargetBuilding", "NeutralCampType", "RuneType", "AssistPlayers", "IsHealSave", "IsUltimateAbility", "AttackerHeroLevel", "TargetHeroLevel", "Xpm", "Gpm", "EventLocation", "TargetIsSelf", "DamageType", "InvisibilityModifier", "DamageCategory", "Networth", "BuildingType", "ModifierElapsedDuration", "SilenceModifier", "HealFromLifesteal", "ModifierPurged", "SpellEvaded", "MotionControllerModifier", "LongRangeKill", "ModifierPurgeAbility", "ModifierPurgeNpc", "RootModifier", "TotalUnitDeathCount", "AuraModifier", "ArmorDebuffModifier", "NoPhysicalDamageModifier", "ModifierAbility", "ModifierHidden", "InflictorIsStolenAbility", "KillEaterEvent", "UnitStatusLabel", "SpellGeneratedAttack", "AtNightTime", "AttackerHasScepter", "NeutralCampTeam", "RegeneratedHealth", "WillReincarnate", "UsesCharges", });
    skadistats.clarity.wire.shared.common.proto.CommonNetworkBaseTypes.getDescriptor();
    skadistats.clarity.wire.shared.demo.proto.DemoNetworkBaseTypes.getDescriptor();
    skadistats.clarity.wire.dota.common.proto.DOTACommonMessages.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy