content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: ShopCardProduct.proto
  
  package emu.grasscutter.net.proto;
  
  public final class ShopCardProductOuterClass {
    private ShopCardProductOuterClass() {}
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.google.protobuf.ExtensionRegistryLite) registry);
    }
    public interface ShopCardProductOrBuilder extends
        // @@protoc_insertion_point(interface_extends:ShopCardProduct)
        com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>string productId = 1;</code>
       * @return The productId.
       */
      java.lang.String getProductId();
      /**
       * <code>string productId = 1;</code>
       * @return The bytes for productId.
       */
      com.google.protobuf.ByteString
          getProductIdBytes();
  
      /**
       * <code>string priceTier = 2;</code>
       * @return The priceTier.
       */
      java.lang.String getPriceTier();
      /**
       * <code>string priceTier = 2;</code>
       * @return The bytes for priceTier.
       */
      com.google.protobuf.ByteString
          getPriceTierBytes();
  
      /**
       * <code>uint32 mcoinBase = 3;</code>
       * @return The mcoinBase.
       */
      int getMcoinBase();
  
      /**
       * <code>uint32 hcoinPerDay = 4;</code>
       * @return The hcoinPerDay.
       */
      int getHcoinPerDay();
  
      /**
       * <code>uint32 days = 5;</code>
       * @return The days.
       */
      int getDays();
  
      /**
       * <code>uint32 remainRewardDays = 6;</code>
       * @return The remainRewardDays.
       */
      int getRemainRewardDays();
  
      /**
       * <code>uint32 cardProductType = 7;</code>
       * @return The cardProductType.
       */
      int getCardProductType();
  
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       * @return Whether the resinCard field is set.
       */
      boolean hasResinCard();
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       * @return The resinCard.
       */
      emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getResinCard();
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       */
      emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder getResinCardOrBuilder();
  
      public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.KNKJCIMNEPFCase getKNKJCIMNEPFCase();
    }
    /**
     * Protobuf type {@code ShopCardProduct}
     */
    public static final class ShopCardProduct extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:ShopCardProduct)
        ShopCardProductOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ShopCardProduct.newBuilder() to construct.
      private ShopCardProduct(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private ShopCardProduct() {
        productId_ = "";
        priceTier_ = "";
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new ShopCardProduct();
      }
  
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ShopCardProduct(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        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;
              case 10: {
                java.lang.String s = input.readStringRequireUtf8();
  
                productId_ = s;
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();
  
                priceTier_ = s;
                break;
              }
              case 24: {
  
                mcoinBase_ = input.readUInt32();
                break;
              }
              case 32: {
  
                hcoinPerDay_ = input.readUInt32();
                break;
              }
              case 40: {
  
                days_ = input.readUInt32();
                break;
              }
              case 48: {
  
                remainRewardDays_ = input.readUInt32();
                break;
              }
              case 56: {
  
                cardProductType_ = input.readUInt32();
                break;
              }
              case 810: {
                emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder subBuilder = null;
                if (kNKJCIMNEPFCase_ == 101) {
                  subBuilder = ((emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_).toBuilder();
                }
                kNKJCIMNEPF_ =
                    input.readMessage(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom((emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_);
                  kNKJCIMNEPF_ = subBuilder.buildPartial();
                }
                kNKJCIMNEPFCase_ = 101;
                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).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_descriptor;
      }
  
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.class, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.Builder.class);
      }
  
      public interface ResinCardOrBuilder extends
          // @@protoc_insertion_point(interface_extends:ShopCardProduct.ResinCard)
          com.google.protobuf.MessageOrBuilder {
  
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
            getBaseItemListList();
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getBaseItemList(int index);
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        int getBaseItemListCount();
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
            getBaseItemListOrBuilderList();
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getBaseItemListOrBuilder(
            int index);
  
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> 
            getPerDayItemListList();
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getPerDayItemList(int index);
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        int getPerDayItemListCount();
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
            getPerDayItemListOrBuilderList();
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getPerDayItemListOrBuilder(
            int index);
      }
      /**
       * Protobuf type {@code ShopCardProduct.ResinCard}
       */
      public static final class ResinCard extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:ShopCardProduct.ResinCard)
          ResinCardOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use ResinCard.newBuilder() to construct.
        private ResinCard(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private ResinCard() {
          baseItemList_ = java.util.Collections.emptyList();
          perDayItemList_ = java.util.Collections.emptyList();
        }
  
        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
          return new ResinCard();
        }
  
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }
        private ResinCard(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          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;
                case 10: {
                  if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                    baseItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
                    mutable_bitField0_ |= 0x00000001;
                  }
                  baseItemList_.add(
                      input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
                  break;
                }
                case 18: {
                  if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                    perDayItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>();
                    mutable_bitField0_ |= 0x00000002;
                  }
                  perDayItemList_.add(
                      input.readMessage(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.parser(), extensionRegistry));
                  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).setUnfinishedMessage(this);
          } finally {
            if (((mutable_bitField0_ & 0x00000001) != 0)) {
              baseItemList_ = java.util.Collections.unmodifiableList(baseItemList_);
            }
            if (((mutable_bitField0_ & 0x00000002) != 0)) {
              perDayItemList_ = java.util.Collections.unmodifiableList(perDayItemList_);
            }
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_ResinCard_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_ResinCard_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.class, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder.class);
        }
  
        public static final int BASEITEMLIST_FIELD_NUMBER = 1;
        private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> baseItemList_;
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        @java.lang.Override
        public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getBaseItemListList() {
          return baseItemList_;
        }
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        @java.lang.Override
        public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
            getBaseItemListOrBuilderList() {
          return baseItemList_;
        }
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        @java.lang.Override
        public int getBaseItemListCount() {
          return baseItemList_.size();
        }
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getBaseItemList(int index) {
          return baseItemList_.get(index);
        }
        /**
         * <code>repeated .ItemParam baseItemList = 1;</code>
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getBaseItemListOrBuilder(
            int index) {
          return baseItemList_.get(index);
        }
  
        public static final int PERDAYITEMLIST_FIELD_NUMBER = 2;
        private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> perDayItemList_;
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        @java.lang.Override
        public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getPerDayItemListList() {
          return perDayItemList_;
        }
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        @java.lang.Override
        public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
            getPerDayItemListOrBuilderList() {
          return perDayItemList_;
        }
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        @java.lang.Override
        public int getPerDayItemListCount() {
          return perDayItemList_.size();
        }
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getPerDayItemList(int index) {
          return perDayItemList_.get(index);
        }
        /**
         * <code>repeated .ItemParam perDayItemList = 2;</code>
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getPerDayItemListOrBuilder(
            int index) {
          return perDayItemList_.get(index);
        }
  
        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;
  
          memoizedIsInitialized = 1;
          return true;
        }
  
        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          for (int i = 0; i < baseItemList_.size(); i++) {
            output.writeMessage(1, baseItemList_.get(i));
          }
          for (int i = 0; i < perDayItemList_.size(); i++) {
            output.writeMessage(2, perDayItemList_.get(i));
          }
          unknownFields.writeTo(output);
        }
  
        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          for (int i = 0; i < baseItemList_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(1, baseItemList_.get(i));
          }
          for (int i = 0; i < perDayItemList_.size(); i++) {
            size += com.google.protobuf.CodedOutputStream
              .computeMessageSize(2, perDayItemList_.get(i));
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard)) {
            return super.equals(obj);
          }
          emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard other = (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) obj;
  
          if (!getBaseItemListList()
              .equals(other.getBaseItemListList())) return false;
          if (!getPerDayItemListList()
              .equals(other.getPerDayItemListList())) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getBaseItemListCount() > 0) {
            hash = (37 * hash) + BASEITEMLIST_FIELD_NUMBER;
            hash = (53 * hash) + getBaseItemListList().hashCode();
          }
          if (getPerDayItemListCount() > 0) {
            hash = (37 * hash) + PERDAYITEMLIST_FIELD_NUMBER;
            hash = (53 * hash) + getPerDayItemListList().hashCode();
          }
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }
  
        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code ShopCardProduct.ResinCard}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:ShopCardProduct.ResinCard)
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_ResinCard_descriptor;
          }
  
          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_ResinCard_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.class, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder.class);
          }
  
          // Construct using emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
  
          private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getBaseItemListFieldBuilder();
              getPerDayItemListFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            if (baseItemListBuilder_ == null) {
              baseItemList_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              baseItemListBuilder_.clear();
            }
            if (perDayItemListBuilder_ == null) {
              perDayItemList_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              perDayItemListBuilder_.clear();
            }
            return this;
          }
  
          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_ResinCard_descriptor;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getDefaultInstanceForType() {
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard build() {
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          @java.lang.Override
          public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard buildPartial() {
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard result = new emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard(this);
            int from_bitField0_ = bitField0_;
            if (baseItemListBuilder_ == null) {
              if (((bitField0_ & 0x00000001) != 0)) {
                baseItemList_ = java.util.Collections.unmodifiableList(baseItemList_);
                bitField0_ = (bitField0_ & ~0x00000001);
              }
              result.baseItemList_ = baseItemList_;
            } else {
              result.baseItemList_ = baseItemListBuilder_.build();
            }
            if (perDayItemListBuilder_ == null) {
              if (((bitField0_ & 0x00000002) != 0)) {
                perDayItemList_ = java.util.Collections.unmodifiableList(perDayItemList_);
                bitField0_ = (bitField0_ & ~0x00000002);
              }
              result.perDayItemList_ = perDayItemList_;
            } else {
              result.perDayItemList_ = perDayItemListBuilder_.build();
            }
            onBuilt();
            return result;
          }
  
          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) {
              return mergeFrom((emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard other) {
            if (other == emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance()) return this;
            if (baseItemListBuilder_ == null) {
              if (!other.baseItemList_.isEmpty()) {
                if (baseItemList_.isEmpty()) {
                  baseItemList_ = other.baseItemList_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                } else {
                  ensureBaseItemListIsMutable();
                  baseItemList_.addAll(other.baseItemList_);
                }
                onChanged();
              }
            } else {
              if (!other.baseItemList_.isEmpty()) {
                if (baseItemListBuilder_.isEmpty()) {
                  baseItemListBuilder_.dispose();
                  baseItemListBuilder_ = null;
                  baseItemList_ = other.baseItemList_;
                  bitField0_ = (bitField0_ & ~0x00000001);
                  baseItemListBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getBaseItemListFieldBuilder() : null;
                } else {
                  baseItemListBuilder_.addAllMessages(other.baseItemList_);
                }
              }
            }
            if (perDayItemListBuilder_ == null) {
              if (!other.perDayItemList_.isEmpty()) {
                if (perDayItemList_.isEmpty()) {
                  perDayItemList_ = other.perDayItemList_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                } else {
                  ensurePerDayItemListIsMutable();
                  perDayItemList_.addAll(other.perDayItemList_);
                }
                onChanged();
              }
            } else {
              if (!other.perDayItemList_.isEmpty()) {
                if (perDayItemListBuilder_.isEmpty()) {
                  perDayItemListBuilder_.dispose();
                  perDayItemListBuilder_ = null;
                  perDayItemList_ = other.perDayItemList_;
                  bitField0_ = (bitField0_ & ~0x00000002);
                  perDayItemListBuilder_ = 
                    com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                       getPerDayItemListFieldBuilder() : null;
                } else {
                  perDayItemListBuilder_.addAllMessages(other.perDayItemList_);
                }
              }
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }
  
          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }
  
          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;
  
          private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> baseItemList_ =
            java.util.Collections.emptyList();
          private void ensureBaseItemListIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              baseItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(baseItemList_);
              bitField0_ |= 0x00000001;
             }
          }
  
          private com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> baseItemListBuilder_;
  
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getBaseItemListList() {
            if (baseItemListBuilder_ == null) {
              return java.util.Collections.unmodifiableList(baseItemList_);
            } else {
              return baseItemListBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public int getBaseItemListCount() {
            if (baseItemListBuilder_ == null) {
              return baseItemList_.size();
            } else {
              return baseItemListBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getBaseItemList(int index) {
            if (baseItemListBuilder_ == null) {
              return baseItemList_.get(index);
            } else {
              return baseItemListBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder setBaseItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (baseItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBaseItemListIsMutable();
              baseItemList_.set(index, value);
              onChanged();
            } else {
              baseItemListBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder setBaseItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (baseItemListBuilder_ == null) {
              ensureBaseItemListIsMutable();
              baseItemList_.set(index, builderForValue.build());
              onChanged();
            } else {
              baseItemListBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder addBaseItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (baseItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBaseItemListIsMutable();
              baseItemList_.add(value);
              onChanged();
            } else {
              baseItemListBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder addBaseItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (baseItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensureBaseItemListIsMutable();
              baseItemList_.add(index, value);
              onChanged();
            } else {
              baseItemListBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder addBaseItemList(
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (baseItemListBuilder_ == null) {
              ensureBaseItemListIsMutable();
              baseItemList_.add(builderForValue.build());
              onChanged();
            } else {
              baseItemListBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder addBaseItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (baseItemListBuilder_ == null) {
              ensureBaseItemListIsMutable();
              baseItemList_.add(index, builderForValue.build());
              onChanged();
            } else {
              baseItemListBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder addAllBaseItemList(
              java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
            if (baseItemListBuilder_ == null) {
              ensureBaseItemListIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, baseItemList_);
              onChanged();
            } else {
              baseItemListBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder clearBaseItemList() {
            if (baseItemListBuilder_ == null) {
              baseItemList_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000001);
              onChanged();
            } else {
              baseItemListBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public Builder removeBaseItemList(int index) {
            if (baseItemListBuilder_ == null) {
              ensureBaseItemListIsMutable();
              baseItemList_.remove(index);
              onChanged();
            } else {
              baseItemListBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getBaseItemListBuilder(
              int index) {
            return getBaseItemListFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getBaseItemListOrBuilder(
              int index) {
            if (baseItemListBuilder_ == null) {
              return baseItemList_.get(index);  } else {
              return baseItemListBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
               getBaseItemListOrBuilderList() {
            if (baseItemListBuilder_ != null) {
              return baseItemListBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(baseItemList_);
            }
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addBaseItemListBuilder() {
            return getBaseItemListFieldBuilder().addBuilder(
                emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addBaseItemListBuilder(
              int index) {
            return getBaseItemListFieldBuilder().addBuilder(
                index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
          }
          /**
           * <code>repeated .ItemParam baseItemList = 1;</code>
           */
          public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
               getBaseItemListBuilderList() {
            return getBaseItemListFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
              getBaseItemListFieldBuilder() {
            if (baseItemListBuilder_ == null) {
              baseItemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
                      baseItemList_,
                      ((bitField0_ & 0x00000001) != 0),
                      getParentForChildren(),
                      isClean());
              baseItemList_ = null;
            }
            return baseItemListBuilder_;
          }
  
          private java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> perDayItemList_ =
            java.util.Collections.emptyList();
          private void ensurePerDayItemListIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              perDayItemList_ = new java.util.ArrayList<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam>(perDayItemList_);
              bitField0_ |= 0x00000002;
             }
          }
  
          private com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> perDayItemListBuilder_;
  
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> getPerDayItemListList() {
            if (perDayItemListBuilder_ == null) {
              return java.util.Collections.unmodifiableList(perDayItemList_);
            } else {
              return perDayItemListBuilder_.getMessageList();
            }
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public int getPerDayItemListCount() {
            if (perDayItemListBuilder_ == null) {
              return perDayItemList_.size();
            } else {
              return perDayItemListBuilder_.getCount();
            }
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam getPerDayItemList(int index) {
            if (perDayItemListBuilder_ == null) {
              return perDayItemList_.get(index);
            } else {
              return perDayItemListBuilder_.getMessage(index);
            }
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder setPerDayItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (perDayItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensurePerDayItemListIsMutable();
              perDayItemList_.set(index, value);
              onChanged();
            } else {
              perDayItemListBuilder_.setMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder setPerDayItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (perDayItemListBuilder_ == null) {
              ensurePerDayItemListIsMutable();
              perDayItemList_.set(index, builderForValue.build());
              onChanged();
            } else {
              perDayItemListBuilder_.setMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder addPerDayItemList(emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (perDayItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensurePerDayItemListIsMutable();
              perDayItemList_.add(value);
              onChanged();
            } else {
              perDayItemListBuilder_.addMessage(value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder addPerDayItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam value) {
            if (perDayItemListBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              ensurePerDayItemListIsMutable();
              perDayItemList_.add(index, value);
              onChanged();
            } else {
              perDayItemListBuilder_.addMessage(index, value);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder addPerDayItemList(
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (perDayItemListBuilder_ == null) {
              ensurePerDayItemListIsMutable();
              perDayItemList_.add(builderForValue.build());
              onChanged();
            } else {
              perDayItemListBuilder_.addMessage(builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder addPerDayItemList(
              int index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder builderForValue) {
            if (perDayItemListBuilder_ == null) {
              ensurePerDayItemListIsMutable();
              perDayItemList_.add(index, builderForValue.build());
              onChanged();
            } else {
              perDayItemListBuilder_.addMessage(index, builderForValue.build());
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder addAllPerDayItemList(
              java.lang.Iterable<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam> values) {
            if (perDayItemListBuilder_ == null) {
              ensurePerDayItemListIsMutable();
              com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, perDayItemList_);
              onChanged();
            } else {
              perDayItemListBuilder_.addAllMessages(values);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder clearPerDayItemList() {
            if (perDayItemListBuilder_ == null) {
              perDayItemList_ = java.util.Collections.emptyList();
              bitField0_ = (bitField0_ & ~0x00000002);
              onChanged();
            } else {
              perDayItemListBuilder_.clear();
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public Builder removePerDayItemList(int index) {
            if (perDayItemListBuilder_ == null) {
              ensurePerDayItemListIsMutable();
              perDayItemList_.remove(index);
              onChanged();
            } else {
              perDayItemListBuilder_.remove(index);
            }
            return this;
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder getPerDayItemListBuilder(
              int index) {
            return getPerDayItemListFieldBuilder().getBuilder(index);
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder getPerDayItemListOrBuilder(
              int index) {
            if (perDayItemListBuilder_ == null) {
              return perDayItemList_.get(index);  } else {
              return perDayItemListBuilder_.getMessageOrBuilder(index);
            }
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public java.util.List<? extends emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
               getPerDayItemListOrBuilderList() {
            if (perDayItemListBuilder_ != null) {
              return perDayItemListBuilder_.getMessageOrBuilderList();
            } else {
              return java.util.Collections.unmodifiableList(perDayItemList_);
            }
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addPerDayItemListBuilder() {
            return getPerDayItemListFieldBuilder().addBuilder(
                emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder addPerDayItemListBuilder(
              int index) {
            return getPerDayItemListFieldBuilder().addBuilder(
                index, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.getDefaultInstance());
          }
          /**
           * <code>repeated .ItemParam perDayItemList = 2;</code>
           */
          public java.util.List<emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder> 
               getPerDayItemListBuilderList() {
            return getPerDayItemListFieldBuilder().getBuilderList();
          }
          private com.google.protobuf.RepeatedFieldBuilderV3<
              emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder> 
              getPerDayItemListFieldBuilder() {
            if (perDayItemListBuilder_ == null) {
              perDayItemListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam.Builder, emu.grasscutter.net.proto.ItemParamOuterClass.ItemParamOrBuilder>(
                      perDayItemList_,
                      ((bitField0_ & 0x00000002) != 0),
                      getParentForChildren(),
                      isClean());
              perDayItemList_ = null;
            }
            return perDayItemListBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }
  
          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:ShopCardProduct.ResinCard)
        }
  
        // @@protoc_insertion_point(class_scope:ShopCardProduct.ResinCard)
        private static final emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard();
        }
  
        public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        private static final com.google.protobuf.Parser<ResinCard>
            PARSER = new com.google.protobuf.AbstractParser<ResinCard>() {
          @java.lang.Override
          public ResinCard parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResinCard(input, extensionRegistry);
          }
        };
  
        public static com.google.protobuf.Parser<ResinCard> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public com.google.protobuf.Parser<ResinCard> getParserForType() {
          return PARSER;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      private int kNKJCIMNEPFCase_ = 0;
      private java.lang.Object kNKJCIMNEPF_;
      public enum KNKJCIMNEPFCase
          implements com.google.protobuf.Internal.EnumLite,
              com.google.protobuf.AbstractMessage.InternalOneOfEnum {
        RESIN_CARD(101),
        KNKJCIMNEPF_NOT_SET(0);
        private final int value;
        private KNKJCIMNEPFCase(int value) {
          this.value = value;
        }
        /**
         * @param value The number of the enum to look for.
         * @return The enum associated with the given number.
         * @deprecated Use {@link #forNumber(int)} instead.
         */
        @java.lang.Deprecated
        public static KNKJCIMNEPFCase valueOf(int value) {
          return forNumber(value);
        }
  
        public static KNKJCIMNEPFCase forNumber(int value) {
          switch (value) {
            case 101: return RESIN_CARD;
            case 0: return KNKJCIMNEPF_NOT_SET;
            default: return null;
          }
        }
        public int getNumber() {
          return this.value;
        }
      };
  
      public KNKJCIMNEPFCase
      getKNKJCIMNEPFCase() {
        return KNKJCIMNEPFCase.forNumber(
            kNKJCIMNEPFCase_);
      }
  
      public static final int PRODUCTID_FIELD_NUMBER = 1;
      private volatile java.lang.Object productId_;
      /**
       * <code>string productId = 1;</code>
       * @return The productId.
       */
      @java.lang.Override
      public java.lang.String getProductId() {
        java.lang.Object ref = productId_;
        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();
          productId_ = s;
          return s;
        }
      }
      /**
       * <code>string productId = 1;</code>
       * @return The bytes for productId.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getProductIdBytes() {
        java.lang.Object ref = productId_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          productId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int PRICETIER_FIELD_NUMBER = 2;
      private volatile java.lang.Object priceTier_;
      /**
       * <code>string priceTier = 2;</code>
       * @return The priceTier.
       */
      @java.lang.Override
      public java.lang.String getPriceTier() {
        java.lang.Object ref = priceTier_;
        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();
          priceTier_ = s;
          return s;
        }
      }
      /**
       * <code>string priceTier = 2;</code>
       * @return The bytes for priceTier.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getPriceTierBytes() {
        java.lang.Object ref = priceTier_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          priceTier_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int MCOINBASE_FIELD_NUMBER = 3;
      private int mcoinBase_;
      /**
       * <code>uint32 mcoinBase = 3;</code>
       * @return The mcoinBase.
       */
      @java.lang.Override
      public int getMcoinBase() {
        return mcoinBase_;
      }
  
      public static final int HCOINPERDAY_FIELD_NUMBER = 4;
      private int hcoinPerDay_;
      /**
       * <code>uint32 hcoinPerDay = 4;</code>
       * @return The hcoinPerDay.
       */
      @java.lang.Override
      public int getHcoinPerDay() {
        return hcoinPerDay_;
      }
  
      public static final int DAYS_FIELD_NUMBER = 5;
      private int days_;
      /**
       * <code>uint32 days = 5;</code>
       * @return The days.
       */
      @java.lang.Override
      public int getDays() {
        return days_;
      }
  
      public static final int REMAINREWARDDAYS_FIELD_NUMBER = 6;
      private int remainRewardDays_;
      /**
       * <code>uint32 remainRewardDays = 6;</code>
       * @return The remainRewardDays.
       */
      @java.lang.Override
      public int getRemainRewardDays() {
        return remainRewardDays_;
      }
  
      public static final int CARDPRODUCTTYPE_FIELD_NUMBER = 7;
      private int cardProductType_;
      /**
       * <code>uint32 cardProductType = 7;</code>
       * @return The cardProductType.
       */
      @java.lang.Override
      public int getCardProductType() {
        return cardProductType_;
      }
  
      public static final int RESIN_CARD_FIELD_NUMBER = 101;
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       * @return Whether the resinCard field is set.
       */
      @java.lang.Override
      public boolean hasResinCard() {
        return kNKJCIMNEPFCase_ == 101;
      }
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       * @return The resinCard.
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getResinCard() {
        if (kNKJCIMNEPFCase_ == 101) {
           return (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_;
        }
        return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
      }
      /**
       * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
       */
      @java.lang.Override
      public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder getResinCardOrBuilder() {
        if (kNKJCIMNEPFCase_ == 101) {
           return (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_;
        }
        return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(productId_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 1, productId_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(priceTier_)) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, priceTier_);
        }
        if (mcoinBase_ != 0) {
          output.writeUInt32(3, mcoinBase_);
        }
        if (hcoinPerDay_ != 0) {
          output.writeUInt32(4, hcoinPerDay_);
        }
        if (days_ != 0) {
          output.writeUInt32(5, days_);
        }
        if (remainRewardDays_ != 0) {
          output.writeUInt32(6, remainRewardDays_);
        }
        if (cardProductType_ != 0) {
          output.writeUInt32(7, cardProductType_);
        }
        if (kNKJCIMNEPFCase_ == 101) {
          output.writeMessage(101, (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_);
        }
        unknownFields.writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(productId_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, productId_);
        }
        if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(priceTier_)) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, priceTier_);
        }
        if (mcoinBase_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(3, mcoinBase_);
        }
        if (hcoinPerDay_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(4, hcoinPerDay_);
        }
        if (days_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(5, days_);
        }
        if (remainRewardDays_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(6, remainRewardDays_);
        }
        if (cardProductType_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(7, cardProductType_);
        }
        if (kNKJCIMNEPFCase_ == 101) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(101, (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct)) {
          return super.equals(obj);
        }
        emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct other = (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct) obj;
  
        if (!getProductId()
            .equals(other.getProductId())) return false;
        if (!getPriceTier()
            .equals(other.getPriceTier())) return false;
        if (getMcoinBase()
            != other.getMcoinBase()) return false;
        if (getHcoinPerDay()
            != other.getHcoinPerDay()) return false;
        if (getDays()
            != other.getDays()) return false;
        if (getRemainRewardDays()
            != other.getRemainRewardDays()) return false;
        if (getCardProductType()
            != other.getCardProductType()) return false;
        if (!getKNKJCIMNEPFCase().equals(other.getKNKJCIMNEPFCase())) return false;
        switch (kNKJCIMNEPFCase_) {
          case 101:
            if (!getResinCard()
                .equals(other.getResinCard())) return false;
            break;
          case 0:
          default:
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + PRODUCTID_FIELD_NUMBER;
        hash = (53 * hash) + getProductId().hashCode();
        hash = (37 * hash) + PRICETIER_FIELD_NUMBER;
        hash = (53 * hash) + getPriceTier().hashCode();
        hash = (37 * hash) + MCOINBASE_FIELD_NUMBER;
        hash = (53 * hash) + getMcoinBase();
        hash = (37 * hash) + HCOINPERDAY_FIELD_NUMBER;
        hash = (53 * hash) + getHcoinPerDay();
        hash = (37 * hash) + DAYS_FIELD_NUMBER;
        hash = (53 * hash) + getDays();
        hash = (37 * hash) + REMAINREWARDDAYS_FIELD_NUMBER;
        hash = (53 * hash) + getRemainRewardDays();
        hash = (37 * hash) + CARDPRODUCTTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getCardProductType();
        switch (kNKJCIMNEPFCase_) {
          case 101:
            hash = (37 * hash) + RESIN_CARD_FIELD_NUMBER;
            hash = (53 * hash) + getResinCard().hashCode();
            break;
          case 0:
          default:
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code ShopCardProduct}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:ShopCardProduct)
          emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProductOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_descriptor;
        }
  
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.class, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.Builder.class);
        }
  
        // Construct using emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          productId_ = "";
  
          priceTier_ = "";
  
          mcoinBase_ = 0;
  
          hcoinPerDay_ = 0;
  
          days_ = 0;
  
          remainRewardDays_ = 0;
  
          cardProductType_ = 0;
  
          kNKJCIMNEPFCase_ = 0;
          kNKJCIMNEPF_ = null;
          return this;
        }
  
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.internal_static_ShopCardProduct_descriptor;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct getDefaultInstanceForType() {
          return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.getDefaultInstance();
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct build() {
          emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct buildPartial() {
          emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct result = new emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct(this);
          result.productId_ = productId_;
          result.priceTier_ = priceTier_;
          result.mcoinBase_ = mcoinBase_;
          result.hcoinPerDay_ = hcoinPerDay_;
          result.days_ = days_;
          result.remainRewardDays_ = remainRewardDays_;
          result.cardProductType_ = cardProductType_;
          if (kNKJCIMNEPFCase_ == 101) {
            if (resinCardBuilder_ == null) {
              result.kNKJCIMNEPF_ = kNKJCIMNEPF_;
            } else {
              result.kNKJCIMNEPF_ = resinCardBuilder_.build();
            }
          }
          result.kNKJCIMNEPFCase_ = kNKJCIMNEPFCase_;
          onBuilt();
          return result;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct) {
            return mergeFrom((emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct other) {
          if (other == emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.getDefaultInstance()) return this;
          if (!other.getProductId().isEmpty()) {
            productId_ = other.productId_;
            onChanged();
          }
          if (!other.getPriceTier().isEmpty()) {
            priceTier_ = other.priceTier_;
            onChanged();
          }
          if (other.getMcoinBase() != 0) {
            setMcoinBase(other.getMcoinBase());
          }
          if (other.getHcoinPerDay() != 0) {
            setHcoinPerDay(other.getHcoinPerDay());
          }
          if (other.getDays() != 0) {
            setDays(other.getDays());
          }
          if (other.getRemainRewardDays() != 0) {
            setRemainRewardDays(other.getRemainRewardDays());
          }
          if (other.getCardProductType() != 0) {
            setCardProductType(other.getCardProductType());
          }
          switch (other.getKNKJCIMNEPFCase()) {
            case RESIN_CARD: {
              mergeResinCard(other.getResinCard());
              break;
            }
            case KNKJCIMNEPF_NOT_SET: {
              break;
            }
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int kNKJCIMNEPFCase_ = 0;
        private java.lang.Object kNKJCIMNEPF_;
        public KNKJCIMNEPFCase
            getKNKJCIMNEPFCase() {
          return KNKJCIMNEPFCase.forNumber(
              kNKJCIMNEPFCase_);
        }
  
        public Builder clearKNKJCIMNEPF() {
          kNKJCIMNEPFCase_ = 0;
          kNKJCIMNEPF_ = null;
          onChanged();
          return this;
        }
  
  
        private java.lang.Object productId_ = "";
        /**
         * <code>string productId = 1;</code>
         * @return The productId.
         */
        public java.lang.String getProductId() {
          java.lang.Object ref = productId_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            productId_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string productId = 1;</code>
         * @return The bytes for productId.
         */
        public com.google.protobuf.ByteString
            getProductIdBytes() {
          java.lang.Object ref = productId_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            productId_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string productId = 1;</code>
         * @param value The productId to set.
         * @return This builder for chaining.
         */
        public Builder setProductId(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          productId_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string productId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearProductId() {
          
          productId_ = getDefaultInstance().getProductId();
          onChanged();
          return this;
        }
        /**
         * <code>string productId = 1;</code>
         * @param value The bytes for productId to set.
         * @return This builder for chaining.
         */
        public Builder setProductIdBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          productId_ = value;
          onChanged();
          return this;
        }
  
        private java.lang.Object priceTier_ = "";
        /**
         * <code>string priceTier = 2;</code>
         * @return The priceTier.
         */
        public java.lang.String getPriceTier() {
          java.lang.Object ref = priceTier_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            priceTier_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>string priceTier = 2;</code>
         * @return The bytes for priceTier.
         */
        public com.google.protobuf.ByteString
            getPriceTierBytes() {
          java.lang.Object ref = priceTier_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            priceTier_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>string priceTier = 2;</code>
         * @param value The priceTier to set.
         * @return This builder for chaining.
         */
        public Builder setPriceTier(
            java.lang.String value) {
          if (value == null) {
      throw new NullPointerException();
    }
    
          priceTier_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>string priceTier = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPriceTier() {
          
          priceTier_ = getDefaultInstance().getPriceTier();
          onChanged();
          return this;
        }
        /**
         * <code>string priceTier = 2;</code>
         * @param value The bytes for priceTier to set.
         * @return This builder for chaining.
         */
        public Builder setPriceTierBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
      throw new NullPointerException();
    }
    checkByteStringIsUtf8(value);
          
          priceTier_ = value;
          onChanged();
          return this;
        }
  
        private int mcoinBase_ ;
        /**
         * <code>uint32 mcoinBase = 3;</code>
         * @return The mcoinBase.
         */
        @java.lang.Override
        public int getMcoinBase() {
          return mcoinBase_;
        }
        /**
         * <code>uint32 mcoinBase = 3;</code>
         * @param value The mcoinBase to set.
         * @return This builder for chaining.
         */
        public Builder setMcoinBase(int value) {
          
          mcoinBase_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 mcoinBase = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearMcoinBase() {
          
          mcoinBase_ = 0;
          onChanged();
          return this;
        }
  
        private int hcoinPerDay_ ;
        /**
         * <code>uint32 hcoinPerDay = 4;</code>
         * @return The hcoinPerDay.
         */
        @java.lang.Override
        public int getHcoinPerDay() {
          return hcoinPerDay_;
        }
        /**
         * <code>uint32 hcoinPerDay = 4;</code>
         * @param value The hcoinPerDay to set.
         * @return This builder for chaining.
         */
        public Builder setHcoinPerDay(int value) {
          
          hcoinPerDay_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 hcoinPerDay = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearHcoinPerDay() {
          
          hcoinPerDay_ = 0;
          onChanged();
          return this;
        }
  
        private int days_ ;
        /**
         * <code>uint32 days = 5;</code>
         * @return The days.
         */
        @java.lang.Override
        public int getDays() {
          return days_;
        }
        /**
         * <code>uint32 days = 5;</code>
         * @param value The days to set.
         * @return This builder for chaining.
         */
        public Builder setDays(int value) {
          
          days_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 days = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearDays() {
          
          days_ = 0;
          onChanged();
          return this;
        }
  
        private int remainRewardDays_ ;
        /**
         * <code>uint32 remainRewardDays = 6;</code>
         * @return The remainRewardDays.
         */
        @java.lang.Override
        public int getRemainRewardDays() {
          return remainRewardDays_;
        }
        /**
         * <code>uint32 remainRewardDays = 6;</code>
         * @param value The remainRewardDays to set.
         * @return This builder for chaining.
         */
        public Builder setRemainRewardDays(int value) {
          
          remainRewardDays_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 remainRewardDays = 6;</code>
         * @return This builder for chaining.
         */
        public Builder clearRemainRewardDays() {
          
          remainRewardDays_ = 0;
          onChanged();
          return this;
        }
  
        private int cardProductType_ ;
        /**
         * <code>uint32 cardProductType = 7;</code>
         * @return The cardProductType.
         */
        @java.lang.Override
        public int getCardProductType() {
          return cardProductType_;
        }
        /**
         * <code>uint32 cardProductType = 7;</code>
         * @param value The cardProductType to set.
         * @return This builder for chaining.
         */
        public Builder setCardProductType(int value) {
          
          cardProductType_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>uint32 cardProductType = 7;</code>
         * @return This builder for chaining.
         */
        public Builder clearCardProductType() {
          
          cardProductType_ = 0;
          onChanged();
          return this;
        }
  
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder> resinCardBuilder_;
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         * @return Whether the resinCard field is set.
         */
        @java.lang.Override
        public boolean hasResinCard() {
          return kNKJCIMNEPFCase_ == 101;
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         * @return The resinCard.
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard getResinCard() {
          if (resinCardBuilder_ == null) {
            if (kNKJCIMNEPFCase_ == 101) {
              return (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_;
            }
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
          } else {
            if (kNKJCIMNEPFCase_ == 101) {
              return resinCardBuilder_.getMessage();
            }
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
          }
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        public Builder setResinCard(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard value) {
          if (resinCardBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            kNKJCIMNEPF_ = value;
            onChanged();
          } else {
            resinCardBuilder_.setMessage(value);
          }
          kNKJCIMNEPFCase_ = 101;
          return this;
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        public Builder setResinCard(
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder builderForValue) {
          if (resinCardBuilder_ == null) {
            kNKJCIMNEPF_ = builderForValue.build();
            onChanged();
          } else {
            resinCardBuilder_.setMessage(builderForValue.build());
          }
          kNKJCIMNEPFCase_ = 101;
          return this;
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        public Builder mergeResinCard(emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard value) {
          if (resinCardBuilder_ == null) {
            if (kNKJCIMNEPFCase_ == 101 &&
                kNKJCIMNEPF_ != emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance()) {
              kNKJCIMNEPF_ = emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.newBuilder((emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_)
                  .mergeFrom(value).buildPartial();
            } else {
              kNKJCIMNEPF_ = value;
            }
            onChanged();
          } else {
            if (kNKJCIMNEPFCase_ == 101) {
              resinCardBuilder_.mergeFrom(value);
            }
            resinCardBuilder_.setMessage(value);
          }
          kNKJCIMNEPFCase_ = 101;
          return this;
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        public Builder clearResinCard() {
          if (resinCardBuilder_ == null) {
            if (kNKJCIMNEPFCase_ == 101) {
              kNKJCIMNEPFCase_ = 0;
              kNKJCIMNEPF_ = null;
              onChanged();
            }
          } else {
            if (kNKJCIMNEPFCase_ == 101) {
              kNKJCIMNEPFCase_ = 0;
              kNKJCIMNEPF_ = null;
            }
            resinCardBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder getResinCardBuilder() {
          return getResinCardFieldBuilder().getBuilder();
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        @java.lang.Override
        public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder getResinCardOrBuilder() {
          if ((kNKJCIMNEPFCase_ == 101) && (resinCardBuilder_ != null)) {
            return resinCardBuilder_.getMessageOrBuilder();
          } else {
            if (kNKJCIMNEPFCase_ == 101) {
              return (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_;
            }
            return emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
          }
        }
        /**
         * <code>.ShopCardProduct.ResinCard resin_card = 101;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder> 
            getResinCardFieldBuilder() {
          if (resinCardBuilder_ == null) {
            if (!(kNKJCIMNEPFCase_ == 101)) {
              kNKJCIMNEPF_ = emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.getDefaultInstance();
            }
            resinCardBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard.Builder, emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCardOrBuilder>(
                    (emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct.ResinCard) kNKJCIMNEPF_,
                    getParentForChildren(),
                    isClean());
            kNKJCIMNEPF_ = null;
          }
          kNKJCIMNEPFCase_ = 101;
          onChanged();;
          return resinCardBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:ShopCardProduct)
      }
  
      // @@protoc_insertion_point(class_scope:ShopCardProduct)
      private static final emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct();
      }
  
      public static emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.google.protobuf.Parser<ShopCardProduct>
          PARSER = new com.google.protobuf.AbstractParser<ShopCardProduct>() {
        @java.lang.Override
        public ShopCardProduct parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ShopCardProduct(input, extensionRegistry);
        }
      };
  
      public static com.google.protobuf.Parser<ShopCardProduct> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.google.protobuf.Parser<ShopCardProduct> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public emu.grasscutter.net.proto.ShopCardProductOuterClass.ShopCardProduct getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_ShopCardProduct_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_ShopCardProduct_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_ShopCardProduct_ResinCard_descriptor;
    private static final 
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internal_static_ShopCardProduct_ResinCard_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\025ShopCardProduct.proto\032\017ItemParam.proto" +
        "\"\264\002\n\017ShopCardProduct\022\021\n\tproductId\030\001 \001(\t\022" +
        "\021\n\tpriceTier\030\002 \001(\t\022\021\n\tmcoinBase\030\003 \001(\r\022\023\n" +
        "\013hcoinPerDay\030\004 \001(\r\022\014\n\004days\030\005 \001(\r\022\030\n\020rema" +
        "inRewardDays\030\006 \001(\r\022\027\n\017cardProductType\030\007 " +
        "\001(\r\0220\n\nresin_card\030e \001(\0132\032.ShopCardProduc" +
        "t.ResinCardH\000\032Q\n\tResinCard\022 \n\014baseItemLi" +
        "st\030\001 \003(\0132\n.ItemParam\022\"\n\016perDayItemList\030\002" +
        " \003(\0132\n.ItemParamB\r\n\013KNKJCIMNEPFB\033\n\031emu.g" +
        "rasscutter.net.protob\006proto3"
      };
      descriptor = com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.google.protobuf.Descriptors.FileDescriptor[] {
            emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor(),
          });
      internal_static_ShopCardProduct_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_ShopCardProduct_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ShopCardProduct_descriptor,
          new java.lang.String[] { "ProductId", "PriceTier", "McoinBase", "HcoinPerDay", "Days", "RemainRewardDays", "CardProductType", "ResinCard", "KNKJCIMNEPF", });
      internal_static_ShopCardProduct_ResinCard_descriptor =
        internal_static_ShopCardProduct_descriptor.getNestedTypes().get(0);
      internal_static_ShopCardProduct_ResinCard_fieldAccessorTable = new
        com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
          internal_static_ShopCardProduct_ResinCard_descriptor,
          new java.lang.String[] { "BaseItemList", "PerDayItemList", });
      emu.grasscutter.net.proto.ItemParamOuterClass.getDescriptor();
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  