public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      com.google.protobuf.GeneratedMessage
        .ExtendableMessage<com.google.protobuf.DescriptorProtos.FileOptions>.ExtensionWriter extensionWriter =
          newExtensionWriter();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getJavaPackageBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(8, getJavaOuterClassnameBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeEnum(9, optimizeFor_.getNumber());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(10, javaMultipleFiles_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(11, getGoPackageBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(16, ccGenericServices_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(17, javaGenericServices_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(18, pyGenericServices_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(20, javaGenerateEqualsAndHash_);
      }
      for (int i = 0; i < uninterpretedOption_.size(); i++) {
        output.writeMessage(999, uninterpretedOption_.get(i));
      }
      extensionWriter.writeUntil(536870912, output);
      getUnknownFields().writeTo(output);
    }