// Code generated by protocol buffer compiler. Do not edit!
package emu.lunarcore.proto;

import java.io.IOException;
import us.hebi.quickbuf.FieldName;
import us.hebi.quickbuf.InvalidProtocolBufferException;
import us.hebi.quickbuf.JsonSink;
import us.hebi.quickbuf.JsonSource;
import us.hebi.quickbuf.MessageFactory;
import us.hebi.quickbuf.ProtoMessage;
import us.hebi.quickbuf.ProtoSink;
import us.hebi.quickbuf.ProtoSource;

public final class RogueFinishInfoOuterClass {
  /**
   * Protobuf type {@code RogueFinishInfo}
   */
  public static final class RogueFinishInfo extends ProtoMessage<RogueFinishInfo> implements Cloneable {
    private static final long serialVersionUID = 0L;

    /**
     * <code>optional uint32 DKCFJCHFECI = 2;</code>
     */
    private int dKCFJCHFECI;

    /**
     * <code>optional uint32 HCKEMCDEDJA = 5;</code>
     */
    private int hCKEMCDEDJA;

    /**
     * <code>optional uint32 NBGGPEJCNAI = 6;</code>
     */
    private int nBGGPEJCNAI;

    /**
     * <code>optional uint32 IEMLILABMCL = 10;</code>
     */
    private int iEMLILABMCL;

    /**
     * <code>optional uint32 HNIJEKJEGHB = 13;</code>
     */
    private int hNIJEKJEGHB;

    /**
     * <code>optional uint32 EDILMPNCLGB = 381;</code>
     */
    private int eDILMPNCLGB;

    /**
     * <code>optional uint32 area_id = 1722;</code>
     */
    private int areaId;

    /**
     * <code>optional bool is_win = 4;</code>
     */
    private boolean isWin;

    /**
     * <pre>
     * NGMGAONGOIL FLJFGNOOFNO = 1;
     * </pre>
     *
     * <code>optional bool LJIHOAMHLDL = 8;</code>
     */
    private boolean lJIHOAMHLDL;

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     */
    private final ItemListOuterClass.ItemList lCINONKILPA = ItemListOuterClass.ItemList.newInstance();

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     */
    private final RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo aDHBKMLLJNI = RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo.newInstance();

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     */
    private final ItemListOuterClass.ItemList lAIJGEIBNAP = ItemListOuterClass.ItemList.newInstance();

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     */
    private final RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo nBJBIFJBKDN = RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo.newInstance();

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     */
    private final ItemListOuterClass.ItemList hOFACAJJCCP = ItemListOuterClass.ItemList.newInstance();

    private RogueFinishInfo() {
    }

    /**
     * @return a new empty instance of {@code RogueFinishInfo}
     */
    public static RogueFinishInfo newInstance() {
      return new RogueFinishInfo();
    }

    /**
     * <code>optional uint32 DKCFJCHFECI = 2;</code>
     * @return whether the dKCFJCHFECI field is set
     */
    public boolean hasDKCFJCHFECI() {
      return (bitField0_ & 0x00000001) != 0;
    }

    /**
     * <code>optional uint32 DKCFJCHFECI = 2;</code>
     * @return this
     */
    public RogueFinishInfo clearDKCFJCHFECI() {
      bitField0_ &= ~0x00000001;
      dKCFJCHFECI = 0;
      return this;
    }

    /**
     * <code>optional uint32 DKCFJCHFECI = 2;</code>
     * @return the dKCFJCHFECI
     */
    public int getDKCFJCHFECI() {
      return dKCFJCHFECI;
    }

    /**
     * <code>optional uint32 DKCFJCHFECI = 2;</code>
     * @param value the dKCFJCHFECI to set
     * @return this
     */
    public RogueFinishInfo setDKCFJCHFECI(final int value) {
      bitField0_ |= 0x00000001;
      dKCFJCHFECI = value;
      return this;
    }

    /**
     * <code>optional uint32 HCKEMCDEDJA = 5;</code>
     * @return whether the hCKEMCDEDJA field is set
     */
    public boolean hasHCKEMCDEDJA() {
      return (bitField0_ & 0x00000002) != 0;
    }

    /**
     * <code>optional uint32 HCKEMCDEDJA = 5;</code>
     * @return this
     */
    public RogueFinishInfo clearHCKEMCDEDJA() {
      bitField0_ &= ~0x00000002;
      hCKEMCDEDJA = 0;
      return this;
    }

    /**
     * <code>optional uint32 HCKEMCDEDJA = 5;</code>
     * @return the hCKEMCDEDJA
     */
    public int getHCKEMCDEDJA() {
      return hCKEMCDEDJA;
    }

    /**
     * <code>optional uint32 HCKEMCDEDJA = 5;</code>
     * @param value the hCKEMCDEDJA to set
     * @return this
     */
    public RogueFinishInfo setHCKEMCDEDJA(final int value) {
      bitField0_ |= 0x00000002;
      hCKEMCDEDJA = value;
      return this;
    }

    /**
     * <code>optional uint32 NBGGPEJCNAI = 6;</code>
     * @return whether the nBGGPEJCNAI field is set
     */
    public boolean hasNBGGPEJCNAI() {
      return (bitField0_ & 0x00000004) != 0;
    }

    /**
     * <code>optional uint32 NBGGPEJCNAI = 6;</code>
     * @return this
     */
    public RogueFinishInfo clearNBGGPEJCNAI() {
      bitField0_ &= ~0x00000004;
      nBGGPEJCNAI = 0;
      return this;
    }

    /**
     * <code>optional uint32 NBGGPEJCNAI = 6;</code>
     * @return the nBGGPEJCNAI
     */
    public int getNBGGPEJCNAI() {
      return nBGGPEJCNAI;
    }

    /**
     * <code>optional uint32 NBGGPEJCNAI = 6;</code>
     * @param value the nBGGPEJCNAI to set
     * @return this
     */
    public RogueFinishInfo setNBGGPEJCNAI(final int value) {
      bitField0_ |= 0x00000004;
      nBGGPEJCNAI = value;
      return this;
    }

    /**
     * <code>optional uint32 IEMLILABMCL = 10;</code>
     * @return whether the iEMLILABMCL field is set
     */
    public boolean hasIEMLILABMCL() {
      return (bitField0_ & 0x00000008) != 0;
    }

    /**
     * <code>optional uint32 IEMLILABMCL = 10;</code>
     * @return this
     */
    public RogueFinishInfo clearIEMLILABMCL() {
      bitField0_ &= ~0x00000008;
      iEMLILABMCL = 0;
      return this;
    }

    /**
     * <code>optional uint32 IEMLILABMCL = 10;</code>
     * @return the iEMLILABMCL
     */
    public int getIEMLILABMCL() {
      return iEMLILABMCL;
    }

    /**
     * <code>optional uint32 IEMLILABMCL = 10;</code>
     * @param value the iEMLILABMCL to set
     * @return this
     */
    public RogueFinishInfo setIEMLILABMCL(final int value) {
      bitField0_ |= 0x00000008;
      iEMLILABMCL = value;
      return this;
    }

    /**
     * <code>optional uint32 HNIJEKJEGHB = 13;</code>
     * @return whether the hNIJEKJEGHB field is set
     */
    public boolean hasHNIJEKJEGHB() {
      return (bitField0_ & 0x00000010) != 0;
    }

    /**
     * <code>optional uint32 HNIJEKJEGHB = 13;</code>
     * @return this
     */
    public RogueFinishInfo clearHNIJEKJEGHB() {
      bitField0_ &= ~0x00000010;
      hNIJEKJEGHB = 0;
      return this;
    }

    /**
     * <code>optional uint32 HNIJEKJEGHB = 13;</code>
     * @return the hNIJEKJEGHB
     */
    public int getHNIJEKJEGHB() {
      return hNIJEKJEGHB;
    }

    /**
     * <code>optional uint32 HNIJEKJEGHB = 13;</code>
     * @param value the hNIJEKJEGHB to set
     * @return this
     */
    public RogueFinishInfo setHNIJEKJEGHB(final int value) {
      bitField0_ |= 0x00000010;
      hNIJEKJEGHB = value;
      return this;
    }

    /**
     * <code>optional uint32 EDILMPNCLGB = 381;</code>
     * @return whether the eDILMPNCLGB field is set
     */
    public boolean hasEDILMPNCLGB() {
      return (bitField0_ & 0x00000020) != 0;
    }

    /**
     * <code>optional uint32 EDILMPNCLGB = 381;</code>
     * @return this
     */
    public RogueFinishInfo clearEDILMPNCLGB() {
      bitField0_ &= ~0x00000020;
      eDILMPNCLGB = 0;
      return this;
    }

    /**
     * <code>optional uint32 EDILMPNCLGB = 381;</code>
     * @return the eDILMPNCLGB
     */
    public int getEDILMPNCLGB() {
      return eDILMPNCLGB;
    }

    /**
     * <code>optional uint32 EDILMPNCLGB = 381;</code>
     * @param value the eDILMPNCLGB to set
     * @return this
     */
    public RogueFinishInfo setEDILMPNCLGB(final int value) {
      bitField0_ |= 0x00000020;
      eDILMPNCLGB = value;
      return this;
    }

    /**
     * <code>optional uint32 area_id = 1722;</code>
     * @return whether the areaId field is set
     */
    public boolean hasAreaId() {
      return (bitField0_ & 0x00000040) != 0;
    }

    /**
     * <code>optional uint32 area_id = 1722;</code>
     * @return this
     */
    public RogueFinishInfo clearAreaId() {
      bitField0_ &= ~0x00000040;
      areaId = 0;
      return this;
    }

    /**
     * <code>optional uint32 area_id = 1722;</code>
     * @return the areaId
     */
    public int getAreaId() {
      return areaId;
    }

    /**
     * <code>optional uint32 area_id = 1722;</code>
     * @param value the areaId to set
     * @return this
     */
    public RogueFinishInfo setAreaId(final int value) {
      bitField0_ |= 0x00000040;
      areaId = value;
      return this;
    }

    /**
     * <code>optional bool is_win = 4;</code>
     * @return whether the isWin field is set
     */
    public boolean hasIsWin() {
      return (bitField0_ & 0x00000080) != 0;
    }

    /**
     * <code>optional bool is_win = 4;</code>
     * @return this
     */
    public RogueFinishInfo clearIsWin() {
      bitField0_ &= ~0x00000080;
      isWin = false;
      return this;
    }

    /**
     * <code>optional bool is_win = 4;</code>
     * @return the isWin
     */
    public boolean getIsWin() {
      return isWin;
    }

    /**
     * <code>optional bool is_win = 4;</code>
     * @param value the isWin to set
     * @return this
     */
    public RogueFinishInfo setIsWin(final boolean value) {
      bitField0_ |= 0x00000080;
      isWin = value;
      return this;
    }

    /**
     * <pre>
     * NGMGAONGOIL FLJFGNOOFNO = 1;
     * </pre>
     *
     * <code>optional bool LJIHOAMHLDL = 8;</code>
     * @return whether the lJIHOAMHLDL field is set
     */
    public boolean hasLJIHOAMHLDL() {
      return (bitField0_ & 0x00000100) != 0;
    }

    /**
     * <pre>
     * NGMGAONGOIL FLJFGNOOFNO = 1;
     * </pre>
     *
     * <code>optional bool LJIHOAMHLDL = 8;</code>
     * @return this
     */
    public RogueFinishInfo clearLJIHOAMHLDL() {
      bitField0_ &= ~0x00000100;
      lJIHOAMHLDL = false;
      return this;
    }

    /**
     * <pre>
     * NGMGAONGOIL FLJFGNOOFNO = 1;
     * </pre>
     *
     * <code>optional bool LJIHOAMHLDL = 8;</code>
     * @return the lJIHOAMHLDL
     */
    public boolean getLJIHOAMHLDL() {
      return lJIHOAMHLDL;
    }

    /**
     * <pre>
     * NGMGAONGOIL FLJFGNOOFNO = 1;
     * </pre>
     *
     * <code>optional bool LJIHOAMHLDL = 8;</code>
     * @param value the lJIHOAMHLDL to set
     * @return this
     */
    public RogueFinishInfo setLJIHOAMHLDL(final boolean value) {
      bitField0_ |= 0x00000100;
      lJIHOAMHLDL = value;
      return this;
    }

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     * @return whether the lCINONKILPA field is set
     */
    public boolean hasLCINONKILPA() {
      return (bitField0_ & 0x00000200) != 0;
    }

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     * @return this
     */
    public RogueFinishInfo clearLCINONKILPA() {
      bitField0_ &= ~0x00000200;
      lCINONKILPA.clear();
      return this;
    }

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     *
     * This method returns the internal storage object without modifying any has state.
     * The returned object should not be modified and be treated as read-only.
     *
     * Use {@link #getMutableLCINONKILPA()} if you want to modify it.
     *
     * @return internal storage object for reading
     */
    public ItemListOuterClass.ItemList getLCINONKILPA() {
      return lCINONKILPA;
    }

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     *
     * This method returns the internal storage object and sets the corresponding
     * has state. The returned object will become part of this message and its
     * contents may be modified as long as the has state is not cleared.
     *
     * @return internal storage object for modifications
     */
    public ItemListOuterClass.ItemList getMutableLCINONKILPA() {
      bitField0_ |= 0x00000200;
      return lCINONKILPA;
    }

    /**
     * <code>optional .ItemList LCINONKILPA = 3;</code>
     * @param value the lCINONKILPA to set
     * @return this
     */
    public RogueFinishInfo setLCINONKILPA(final ItemListOuterClass.ItemList value) {
      bitField0_ |= 0x00000200;
      lCINONKILPA.copyFrom(value);
      return this;
    }

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     * @return whether the aDHBKMLLJNI field is set
     */
    public boolean hasADHBKMLLJNI() {
      return (bitField0_ & 0x00000400) != 0;
    }

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     * @return this
     */
    public RogueFinishInfo clearADHBKMLLJNI() {
      bitField0_ &= ~0x00000400;
      aDHBKMLLJNI.clear();
      return this;
    }

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     *
     * This method returns the internal storage object without modifying any has state.
     * The returned object should not be modified and be treated as read-only.
     *
     * Use {@link #getMutableADHBKMLLJNI()} if you want to modify it.
     *
     * @return internal storage object for reading
     */
    public RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo getADHBKMLLJNI() {
      return aDHBKMLLJNI;
    }

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     *
     * This method returns the internal storage object and sets the corresponding
     * has state. The returned object will become part of this message and its
     * contents may be modified as long as the has state is not cleared.
     *
     * @return internal storage object for modifications
     */
    public RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo getMutableADHBKMLLJNI() {
      bitField0_ |= 0x00000400;
      return aDHBKMLLJNI;
    }

    /**
     * <code>optional .RogueScoreRewardInfo ADHBKMLLJNI = 7;</code>
     * @param value the aDHBKMLLJNI to set
     * @return this
     */
    public RogueFinishInfo setADHBKMLLJNI(
        final RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo value) {
      bitField0_ |= 0x00000400;
      aDHBKMLLJNI.copyFrom(value);
      return this;
    }

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     * @return whether the lAIJGEIBNAP field is set
     */
    public boolean hasLAIJGEIBNAP() {
      return (bitField0_ & 0x00000800) != 0;
    }

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     * @return this
     */
    public RogueFinishInfo clearLAIJGEIBNAP() {
      bitField0_ &= ~0x00000800;
      lAIJGEIBNAP.clear();
      return this;
    }

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     *
     * This method returns the internal storage object without modifying any has state.
     * The returned object should not be modified and be treated as read-only.
     *
     * Use {@link #getMutableLAIJGEIBNAP()} if you want to modify it.
     *
     * @return internal storage object for reading
     */
    public ItemListOuterClass.ItemList getLAIJGEIBNAP() {
      return lAIJGEIBNAP;
    }

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     *
     * This method returns the internal storage object and sets the corresponding
     * has state. The returned object will become part of this message and its
     * contents may be modified as long as the has state is not cleared.
     *
     * @return internal storage object for modifications
     */
    public ItemListOuterClass.ItemList getMutableLAIJGEIBNAP() {
      bitField0_ |= 0x00000800;
      return lAIJGEIBNAP;
    }

    /**
     * <code>optional .ItemList LAIJGEIBNAP = 11;</code>
     * @param value the lAIJGEIBNAP to set
     * @return this
     */
    public RogueFinishInfo setLAIJGEIBNAP(final ItemListOuterClass.ItemList value) {
      bitField0_ |= 0x00000800;
      lAIJGEIBNAP.copyFrom(value);
      return this;
    }

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     * @return whether the nBJBIFJBKDN field is set
     */
    public boolean hasNBJBIFJBKDN() {
      return (bitField0_ & 0x00001000) != 0;
    }

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     * @return this
     */
    public RogueFinishInfo clearNBJBIFJBKDN() {
      bitField0_ &= ~0x00001000;
      nBJBIFJBKDN.clear();
      return this;
    }

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     *
     * This method returns the internal storage object without modifying any has state.
     * The returned object should not be modified and be treated as read-only.
     *
     * Use {@link #getMutableNBJBIFJBKDN()} if you want to modify it.
     *
     * @return internal storage object for reading
     */
    public RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo getNBJBIFJBKDN() {
      return nBJBIFJBKDN;
    }

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     *
     * This method returns the internal storage object and sets the corresponding
     * has state. The returned object will become part of this message and its
     * contents may be modified as long as the has state is not cleared.
     *
     * @return internal storage object for modifications
     */
    public RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo getMutableNBJBIFJBKDN() {
      bitField0_ |= 0x00001000;
      return nBJBIFJBKDN;
    }

    /**
     * <pre>
     * NJCINLEBHMJ APJHMNLJCHH = 9;
     * LBEDLHFELIB MAHNEEFIFHN = 14;
     * </pre>
     *
     * <code>optional .RogueScoreRewardInfo NBJBIFJBKDN = 12;</code>
     * @param value the nBJBIFJBKDN to set
     * @return this
     */
    public RogueFinishInfo setNBJBIFJBKDN(
        final RogueScoreRewardInfoOuterClass.RogueScoreRewardInfo value) {
      bitField0_ |= 0x00001000;
      nBJBIFJBKDN.copyFrom(value);
      return this;
    }

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     * @return whether the hOFACAJJCCP field is set
     */
    public boolean hasHOFACAJJCCP() {
      return (bitField0_ & 0x00002000) != 0;
    }

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     * @return this
     */
    public RogueFinishInfo clearHOFACAJJCCP() {
      bitField0_ &= ~0x00002000;
      hOFACAJJCCP.clear();
      return this;
    }

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     *
     * This method returns the internal storage object without modifying any has state.
     * The returned object should not be modified and be treated as read-only.
     *
     * Use {@link #getMutableHOFACAJJCCP()} if you want to modify it.
     *
     * @return internal storage object for reading
     */
    public ItemListOuterClass.ItemList getHOFACAJJCCP() {
      return hOFACAJJCCP;
    }

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     *
     * This method returns the internal storage object and sets the corresponding
     * has state. The returned object will become part of this message and its
     * contents may be modified as long as the has state is not cleared.
     *
     * @return internal storage object for modifications
     */
    public ItemListOuterClass.ItemList getMutableHOFACAJJCCP() {
      bitField0_ |= 0x00002000;
      return hOFACAJJCCP;
    }

    /**
     * <code>optional .ItemList HOFACAJJCCP = 15;</code>
     * @param value the hOFACAJJCCP to set
     * @return this
     */
    public RogueFinishInfo setHOFACAJJCCP(final ItemListOuterClass.ItemList value) {
      bitField0_ |= 0x00002000;
      hOFACAJJCCP.copyFrom(value);
      return this;
    }

    @Override
    public RogueFinishInfo copyFrom(final RogueFinishInfo other) {
      cachedSize = other.cachedSize;
      if ((bitField0_ | other.bitField0_) != 0) {
        bitField0_ = other.bitField0_;
        dKCFJCHFECI = other.dKCFJCHFECI;
        hCKEMCDEDJA = other.hCKEMCDEDJA;
        nBGGPEJCNAI = other.nBGGPEJCNAI;
        iEMLILABMCL = other.iEMLILABMCL;
        hNIJEKJEGHB = other.hNIJEKJEGHB;
        eDILMPNCLGB = other.eDILMPNCLGB;
        areaId = other.areaId;
        isWin = other.isWin;
        lJIHOAMHLDL = other.lJIHOAMHLDL;
        lCINONKILPA.copyFrom(other.lCINONKILPA);
        aDHBKMLLJNI.copyFrom(other.aDHBKMLLJNI);
        lAIJGEIBNAP.copyFrom(other.lAIJGEIBNAP);
        nBJBIFJBKDN.copyFrom(other.nBJBIFJBKDN);
        hOFACAJJCCP.copyFrom(other.hOFACAJJCCP);
      }
      return this;
    }

    @Override
    public RogueFinishInfo mergeFrom(final RogueFinishInfo other) {
      if (other.isEmpty()) {
        return this;
      }
      cachedSize = -1;
      if (other.hasDKCFJCHFECI()) {
        setDKCFJCHFECI(other.dKCFJCHFECI);
      }
      if (other.hasHCKEMCDEDJA()) {
        setHCKEMCDEDJA(other.hCKEMCDEDJA);
      }
      if (other.hasNBGGPEJCNAI()) {
        setNBGGPEJCNAI(other.nBGGPEJCNAI);
      }
      if (other.hasIEMLILABMCL()) {
        setIEMLILABMCL(other.iEMLILABMCL);
      }
      if (other.hasHNIJEKJEGHB()) {
        setHNIJEKJEGHB(other.hNIJEKJEGHB);
      }
      if (other.hasEDILMPNCLGB()) {
        setEDILMPNCLGB(other.eDILMPNCLGB);
      }
      if (other.hasAreaId()) {
        setAreaId(other.areaId);
      }
      if (other.hasIsWin()) {
        setIsWin(other.isWin);
      }
      if (other.hasLJIHOAMHLDL()) {
        setLJIHOAMHLDL(other.lJIHOAMHLDL);
      }
      if (other.hasLCINONKILPA()) {
        getMutableLCINONKILPA().mergeFrom(other.lCINONKILPA);
      }
      if (other.hasADHBKMLLJNI()) {
        getMutableADHBKMLLJNI().mergeFrom(other.aDHBKMLLJNI);
      }
      if (other.hasLAIJGEIBNAP()) {
        getMutableLAIJGEIBNAP().mergeFrom(other.lAIJGEIBNAP);
      }
      if (other.hasNBJBIFJBKDN()) {
        getMutableNBJBIFJBKDN().mergeFrom(other.nBJBIFJBKDN);
      }
      if (other.hasHOFACAJJCCP()) {
        getMutableHOFACAJJCCP().mergeFrom(other.hOFACAJJCCP);
      }
      return this;
    }

    @Override
    public RogueFinishInfo clear() {
      if (isEmpty()) {
        return this;
      }
      cachedSize = -1;
      bitField0_ = 0;
      dKCFJCHFECI = 0;
      hCKEMCDEDJA = 0;
      nBGGPEJCNAI = 0;
      iEMLILABMCL = 0;
      hNIJEKJEGHB = 0;
      eDILMPNCLGB = 0;
      areaId = 0;
      isWin = false;
      lJIHOAMHLDL = false;
      lCINONKILPA.clear();
      aDHBKMLLJNI.clear();
      lAIJGEIBNAP.clear();
      nBJBIFJBKDN.clear();
      hOFACAJJCCP.clear();
      return this;
    }

    @Override
    public RogueFinishInfo clearQuick() {
      if (isEmpty()) {
        return this;
      }
      cachedSize = -1;
      bitField0_ = 0;
      lCINONKILPA.clearQuick();
      aDHBKMLLJNI.clearQuick();
      lAIJGEIBNAP.clearQuick();
      nBJBIFJBKDN.clearQuick();
      hOFACAJJCCP.clearQuick();
      return this;
    }

    @Override
    public boolean equals(Object o) {
      if (o == this) {
        return true;
      }
      if (!(o instanceof RogueFinishInfo)) {
        return false;
      }
      RogueFinishInfo other = (RogueFinishInfo) o;
      return bitField0_ == other.bitField0_
        && (!hasDKCFJCHFECI() || dKCFJCHFECI == other.dKCFJCHFECI)
        && (!hasHCKEMCDEDJA() || hCKEMCDEDJA == other.hCKEMCDEDJA)
        && (!hasNBGGPEJCNAI() || nBGGPEJCNAI == other.nBGGPEJCNAI)
        && (!hasIEMLILABMCL() || iEMLILABMCL == other.iEMLILABMCL)
        && (!hasHNIJEKJEGHB() || hNIJEKJEGHB == other.hNIJEKJEGHB)
        && (!hasEDILMPNCLGB() || eDILMPNCLGB == other.eDILMPNCLGB)
        && (!hasAreaId() || areaId == other.areaId)
        && (!hasIsWin() || isWin == other.isWin)
        && (!hasLJIHOAMHLDL() || lJIHOAMHLDL == other.lJIHOAMHLDL)
        && (!hasLCINONKILPA() || lCINONKILPA.equals(other.lCINONKILPA))
        && (!hasADHBKMLLJNI() || aDHBKMLLJNI.equals(other.aDHBKMLLJNI))
        && (!hasLAIJGEIBNAP() || lAIJGEIBNAP.equals(other.lAIJGEIBNAP))
        && (!hasNBJBIFJBKDN() || nBJBIFJBKDN.equals(other.nBJBIFJBKDN))
        && (!hasHOFACAJJCCP() || hOFACAJJCCP.equals(other.hOFACAJJCCP));
    }

    @Override
    public void writeTo(final ProtoSink output) throws IOException {
      if ((bitField0_ & 0x00000001) != 0) {
        output.writeRawByte((byte) 16);
        output.writeUInt32NoTag(dKCFJCHFECI);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        output.writeRawByte((byte) 40);
        output.writeUInt32NoTag(hCKEMCDEDJA);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        output.writeRawByte((byte) 48);
        output.writeUInt32NoTag(nBGGPEJCNAI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        output.writeRawByte((byte) 80);
        output.writeUInt32NoTag(iEMLILABMCL);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        output.writeRawByte((byte) 104);
        output.writeUInt32NoTag(hNIJEKJEGHB);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        output.writeRawLittleEndian16((short) 6120);
        output.writeUInt32NoTag(eDILMPNCLGB);
      }
      if ((bitField0_ & 0x00000040) != 0) {
        output.writeRawLittleEndian16((short) 27600);
        output.writeUInt32NoTag(areaId);
      }
      if ((bitField0_ & 0x00000080) != 0) {
        output.writeRawByte((byte) 32);
        output.writeBoolNoTag(isWin);
      }
      if ((bitField0_ & 0x00000100) != 0) {
        output.writeRawByte((byte) 64);
        output.writeBoolNoTag(lJIHOAMHLDL);
      }
      if ((bitField0_ & 0x00000200) != 0) {
        output.writeRawByte((byte) 26);
        output.writeMessageNoTag(lCINONKILPA);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        output.writeRawByte((byte) 58);
        output.writeMessageNoTag(aDHBKMLLJNI);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        output.writeRawByte((byte) 90);
        output.writeMessageNoTag(lAIJGEIBNAP);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        output.writeRawByte((byte) 98);
        output.writeMessageNoTag(nBJBIFJBKDN);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        output.writeRawByte((byte) 122);
        output.writeMessageNoTag(hOFACAJJCCP);
      }
    }

    @Override
    protected int computeSerializedSize() {
      int size = 0;
      if ((bitField0_ & 0x00000001) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(dKCFJCHFECI);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(hCKEMCDEDJA);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(nBGGPEJCNAI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(iEMLILABMCL);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        size += 1 + ProtoSink.computeUInt32SizeNoTag(hNIJEKJEGHB);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        size += 2 + ProtoSink.computeUInt32SizeNoTag(eDILMPNCLGB);
      }
      if ((bitField0_ & 0x00000040) != 0) {
        size += 2 + ProtoSink.computeUInt32SizeNoTag(areaId);
      }
      if ((bitField0_ & 0x00000080) != 0) {
        size += 2;
      }
      if ((bitField0_ & 0x00000100) != 0) {
        size += 2;
      }
      if ((bitField0_ & 0x00000200) != 0) {
        size += 1 + ProtoSink.computeMessageSizeNoTag(lCINONKILPA);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        size += 1 + ProtoSink.computeMessageSizeNoTag(aDHBKMLLJNI);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        size += 1 + ProtoSink.computeMessageSizeNoTag(lAIJGEIBNAP);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        size += 1 + ProtoSink.computeMessageSizeNoTag(nBJBIFJBKDN);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        size += 1 + ProtoSink.computeMessageSizeNoTag(hOFACAJJCCP);
      }
      return size;
    }

    @Override
    @SuppressWarnings("fallthrough")
    public RogueFinishInfo mergeFrom(final ProtoSource input) throws IOException {
      // Enabled Fall-Through Optimization (QuickBuffers)
      int tag = input.readTag();
      while (true) {
        switch (tag) {
          case 16: {
            // dKCFJCHFECI
            dKCFJCHFECI = input.readUInt32();
            bitField0_ |= 0x00000001;
            tag = input.readTag();
            if (tag != 40) {
              break;
            }
          }
          case 40: {
            // hCKEMCDEDJA
            hCKEMCDEDJA = input.readUInt32();
            bitField0_ |= 0x00000002;
            tag = input.readTag();
            if (tag != 48) {
              break;
            }
          }
          case 48: {
            // nBGGPEJCNAI
            nBGGPEJCNAI = input.readUInt32();
            bitField0_ |= 0x00000004;
            tag = input.readTag();
            if (tag != 80) {
              break;
            }
          }
          case 80: {
            // iEMLILABMCL
            iEMLILABMCL = input.readUInt32();
            bitField0_ |= 0x00000008;
            tag = input.readTag();
            if (tag != 104) {
              break;
            }
          }
          case 104: {
            // hNIJEKJEGHB
            hNIJEKJEGHB = input.readUInt32();
            bitField0_ |= 0x00000010;
            tag = input.readTag();
            if (tag != 3048) {
              break;
            }
          }
          case 3048: {
            // eDILMPNCLGB
            eDILMPNCLGB = input.readUInt32();
            bitField0_ |= 0x00000020;
            tag = input.readTag();
            if (tag != 13776) {
              break;
            }
          }
          case 13776: {
            // areaId
            areaId = input.readUInt32();
            bitField0_ |= 0x00000040;
            tag = input.readTag();
            if (tag != 32) {
              break;
            }
          }
          case 32: {
            // isWin
            isWin = input.readBool();
            bitField0_ |= 0x00000080;
            tag = input.readTag();
            if (tag != 64) {
              break;
            }
          }
          case 64: {
            // lJIHOAMHLDL
            lJIHOAMHLDL = input.readBool();
            bitField0_ |= 0x00000100;
            tag = input.readTag();
            if (tag != 26) {
              break;
            }
          }
          case 26: {
            // lCINONKILPA
            input.readMessage(lCINONKILPA);
            bitField0_ |= 0x00000200;
            tag = input.readTag();
            if (tag != 58) {
              break;
            }
          }
          case 58: {
            // aDHBKMLLJNI
            input.readMessage(aDHBKMLLJNI);
            bitField0_ |= 0x00000400;
            tag = input.readTag();
            if (tag != 90) {
              break;
            }
          }
          case 90: {
            // lAIJGEIBNAP
            input.readMessage(lAIJGEIBNAP);
            bitField0_ |= 0x00000800;
            tag = input.readTag();
            if (tag != 98) {
              break;
            }
          }
          case 98: {
            // nBJBIFJBKDN
            input.readMessage(nBJBIFJBKDN);
            bitField0_ |= 0x00001000;
            tag = input.readTag();
            if (tag != 122) {
              break;
            }
          }
          case 122: {
            // hOFACAJJCCP
            input.readMessage(hOFACAJJCCP);
            bitField0_ |= 0x00002000;
            tag = input.readTag();
            if (tag != 0) {
              break;
            }
          }
          case 0: {
            return this;
          }
          default: {
            if (!input.skipField(tag)) {
              return this;
            }
            tag = input.readTag();
            break;
          }
        }
      }
    }

    @Override
    public void writeTo(final JsonSink output) throws IOException {
      output.beginObject();
      if ((bitField0_ & 0x00000001) != 0) {
        output.writeUInt32(FieldNames.dKCFJCHFECI, dKCFJCHFECI);
      }
      if ((bitField0_ & 0x00000002) != 0) {
        output.writeUInt32(FieldNames.hCKEMCDEDJA, hCKEMCDEDJA);
      }
      if ((bitField0_ & 0x00000004) != 0) {
        output.writeUInt32(FieldNames.nBGGPEJCNAI, nBGGPEJCNAI);
      }
      if ((bitField0_ & 0x00000008) != 0) {
        output.writeUInt32(FieldNames.iEMLILABMCL, iEMLILABMCL);
      }
      if ((bitField0_ & 0x00000010) != 0) {
        output.writeUInt32(FieldNames.hNIJEKJEGHB, hNIJEKJEGHB);
      }
      if ((bitField0_ & 0x00000020) != 0) {
        output.writeUInt32(FieldNames.eDILMPNCLGB, eDILMPNCLGB);
      }
      if ((bitField0_ & 0x00000040) != 0) {
        output.writeUInt32(FieldNames.areaId, areaId);
      }
      if ((bitField0_ & 0x00000080) != 0) {
        output.writeBool(FieldNames.isWin, isWin);
      }
      if ((bitField0_ & 0x00000100) != 0) {
        output.writeBool(FieldNames.lJIHOAMHLDL, lJIHOAMHLDL);
      }
      if ((bitField0_ & 0x00000200) != 0) {
        output.writeMessage(FieldNames.lCINONKILPA, lCINONKILPA);
      }
      if ((bitField0_ & 0x00000400) != 0) {
        output.writeMessage(FieldNames.aDHBKMLLJNI, aDHBKMLLJNI);
      }
      if ((bitField0_ & 0x00000800) != 0) {
        output.writeMessage(FieldNames.lAIJGEIBNAP, lAIJGEIBNAP);
      }
      if ((bitField0_ & 0x00001000) != 0) {
        output.writeMessage(FieldNames.nBJBIFJBKDN, nBJBIFJBKDN);
      }
      if ((bitField0_ & 0x00002000) != 0) {
        output.writeMessage(FieldNames.hOFACAJJCCP, hOFACAJJCCP);
      }
      output.endObject();
    }

    @Override
    public RogueFinishInfo mergeFrom(final JsonSource input) throws IOException {
      if (!input.beginObject()) {
        return this;
      }
      while (!input.isAtEnd()) {
        switch (input.readFieldHash()) {
          case 347618730: {
            if (input.isAtField(FieldNames.dKCFJCHFECI)) {
              if (!input.trySkipNullValue()) {
                dKCFJCHFECI = input.readUInt32();
                bitField0_ |= 0x00000001;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1631869105: {
            if (input.isAtField(FieldNames.hCKEMCDEDJA)) {
              if (!input.trySkipNullValue()) {
                hCKEMCDEDJA = input.readUInt32();
                bitField0_ |= 0x00000002;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1223634996: {
            if (input.isAtField(FieldNames.nBGGPEJCNAI)) {
              if (!input.trySkipNullValue()) {
                nBGGPEJCNAI = input.readUInt32();
                bitField0_ |= 0x00000004;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1467712087: {
            if (input.isAtField(FieldNames.iEMLILABMCL)) {
              if (!input.trySkipNullValue()) {
                iEMLILABMCL = input.readUInt32();
                bitField0_ |= 0x00000008;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 1669990649: {
            if (input.isAtField(FieldNames.hNIJEKJEGHB)) {
              if (!input.trySkipNullValue()) {
                hNIJEKJEGHB = input.readUInt32();
                bitField0_ |= 0x00000010;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1716421555: {
            if (input.isAtField(FieldNames.eDILMPNCLGB)) {
              if (!input.trySkipNullValue()) {
                eDILMPNCLGB = input.readUInt32();
                bitField0_ |= 0x00000020;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1409553784:
          case -746472947: {
            if (input.isAtField(FieldNames.areaId)) {
              if (!input.trySkipNullValue()) {
                areaId = input.readUInt32();
                bitField0_ |= 0x00000040;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 100482642:
          case -1179753657: {
            if (input.isAtField(FieldNames.isWin)) {
              if (!input.trySkipNullValue()) {
                isWin = input.readBool();
                bitField0_ |= 0x00000080;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 374228490: {
            if (input.isAtField(FieldNames.lJIHOAMHLDL)) {
              if (!input.trySkipNullValue()) {
                lJIHOAMHLDL = input.readBool();
                bitField0_ |= 0x00000100;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -307854780: {
            if (input.isAtField(FieldNames.lCINONKILPA)) {
              if (!input.trySkipNullValue()) {
                input.readMessage(lCINONKILPA);
                bitField0_ |= 0x00000200;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 873161446: {
            if (input.isAtField(FieldNames.aDHBKMLLJNI)) {
              if (!input.trySkipNullValue()) {
                input.readMessage(aDHBKMLLJNI);
                bitField0_ |= 0x00000400;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1360913136: {
            if (input.isAtField(FieldNames.lAIJGEIBNAP)) {
              if (!input.trySkipNullValue()) {
                input.readMessage(lAIJGEIBNAP);
                bitField0_ |= 0x00000800;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case -1916840076: {
            if (input.isAtField(FieldNames.nBJBIFJBKDN)) {
              if (!input.trySkipNullValue()) {
                input.readMessage(nBJBIFJBKDN);
                bitField0_ |= 0x00001000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          case 2034295504: {
            if (input.isAtField(FieldNames.hOFACAJJCCP)) {
              if (!input.trySkipNullValue()) {
                input.readMessage(hOFACAJJCCP);
                bitField0_ |= 0x00002000;
              }
            } else {
              input.skipUnknownField();
            }
            break;
          }
          default: {
            input.skipUnknownField();
            break;
          }
        }
      }
      input.endObject();
      return this;
    }

    @Override
    public RogueFinishInfo clone() {
      return new RogueFinishInfo().copyFrom(this);
    }

    @Override
    public boolean isEmpty() {
      return ((bitField0_) == 0);
    }

    public static RogueFinishInfo parseFrom(final byte[] data) throws
        InvalidProtocolBufferException {
      return ProtoMessage.mergeFrom(new RogueFinishInfo(), data).checkInitialized();
    }

    public static RogueFinishInfo parseFrom(final ProtoSource input) throws IOException {
      return ProtoMessage.mergeFrom(new RogueFinishInfo(), input).checkInitialized();
    }

    public static RogueFinishInfo parseFrom(final JsonSource input) throws IOException {
      return ProtoMessage.mergeFrom(new RogueFinishInfo(), input).checkInitialized();
    }

    /**
     * @return factory for creating RogueFinishInfo messages
     */
    public static MessageFactory<RogueFinishInfo> getFactory() {
      return RogueFinishInfoFactory.INSTANCE;
    }

    private enum RogueFinishInfoFactory implements MessageFactory<RogueFinishInfo> {
      INSTANCE;

      @Override
      public RogueFinishInfo create() {
        return RogueFinishInfo.newInstance();
      }
    }

    /**
     * Contains name constants used for serializing JSON
     */
    static class FieldNames {
      static final FieldName dKCFJCHFECI = FieldName.forField("DKCFJCHFECI");

      static final FieldName hCKEMCDEDJA = FieldName.forField("HCKEMCDEDJA");

      static final FieldName nBGGPEJCNAI = FieldName.forField("NBGGPEJCNAI");

      static final FieldName iEMLILABMCL = FieldName.forField("IEMLILABMCL");

      static final FieldName hNIJEKJEGHB = FieldName.forField("HNIJEKJEGHB");

      static final FieldName eDILMPNCLGB = FieldName.forField("EDILMPNCLGB");

      static final FieldName areaId = FieldName.forField("areaId", "area_id");

      static final FieldName isWin = FieldName.forField("isWin", "is_win");

      static final FieldName lJIHOAMHLDL = FieldName.forField("LJIHOAMHLDL");

      static final FieldName lCINONKILPA = FieldName.forField("LCINONKILPA");

      static final FieldName aDHBKMLLJNI = FieldName.forField("ADHBKMLLJNI");

      static final FieldName lAIJGEIBNAP = FieldName.forField("LAIJGEIBNAP");

      static final FieldName nBJBIFJBKDN = FieldName.forField("NBJBIFJBKDN");

      static final FieldName hOFACAJJCCP = FieldName.forField("HOFACAJJCCP");
    }
  }
}
