// Path: app/src/main/java/com/google/android/diskusage/proto/PortableResultProto.java
// @SuppressWarnings("hiding")
// public final class PortableResultProto extends
//     com.google.protobuf.nano.MessageNano {
// 
//   private static volatile PortableResultProto[] _emptyArray;
//   public static PortableResultProto[] emptyArray() {
//     // Lazily initializes the empty array
//     if (_emptyArray == null) {
//       synchronized (
//           com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
//         if (_emptyArray == null) {
//           _emptyArray = new PortableResultProto[0];
//         }
//       }
//     }
//     return _emptyArray;
//   }
// 
//   // optional .PortableExceptionProto exception = 1;
//   public com.google.android.diskusage.proto.PortableExceptionProto exception;
// 
//   // optional bool evaluated = 2;
//   public boolean evaluated;
// 
//   public PortableResultProto() {
//     clear();
//   }
// 
//   public PortableResultProto clear() {
//     exception = null;
//     evaluated = false;
//     cachedSize = -1;
//     return this;
//   }
// 
//   @Override
//   public void writeTo(com.google.protobuf.nano.CodedOutputByteBufferNano output)
//       throws java.io.IOException {
//     if (this.exception != null) {
//       output.writeMessage(1, this.exception);
//     }
//     if (this.evaluated != false) {
//       output.writeBool(2, this.evaluated);
//     }
//     super.writeTo(output);
//   }
// 
//   @Override
//   protected int computeSerializedSize() {
//     int size = super.computeSerializedSize();
//     if (this.exception != null) {
//       size += com.google.protobuf.nano.CodedOutputByteBufferNano
//         .computeMessageSize(1, this.exception);
//     }
//     if (this.evaluated != false) {
//       size += com.google.protobuf.nano.CodedOutputByteBufferNano
//           .computeBoolSize(2, this.evaluated);
//     }
//     return size;
//   }
// 
//   @Override
//   public PortableResultProto mergeFrom(
//           com.google.protobuf.nano.CodedInputByteBufferNano input)
//       throws java.io.IOException {
//     while (true) {
//       int tag = input.readTag();
//       switch (tag) {
//         case 0:
//           return this;
//         default: {
//           if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
//             return this;
//           }
//           break;
//         }
//         case 10: {
//           if (this.exception == null) {
//             this.exception = new com.google.android.diskusage.proto.PortableExceptionProto();
//           }
//           input.readMessage(this.exception);
//           break;
//         }
//         case 16: {
//           this.evaluated = input.readBool();
//           break;
//         }
//       }
//     }
//   }
// 
//   public static PortableResultProto parseFrom(byte[] data)
//       throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
//     return com.google.protobuf.nano.MessageNano.mergeFrom(new PortableResultProto(), data);
//   }
// 
//   public static PortableResultProto parseFrom(
//           com.google.protobuf.nano.CodedInputByteBufferNano input)
//       throws java.io.IOException {
//     return new PortableResultProto().mergeFrom(input);
//   }
// }


import com.google.android.diskusage.proto.PortableResultProto;
package com.google.android.diskusage.datasource.debug;


public abstract class PortableResult {

  public abstract void run() throws Exception;


// Path: app/src/main/java/com/google/android/diskusage/proto/PortableResultProto.java
// @SuppressWarnings("hiding")
// public final class PortableResultProto extends
//     com.google.protobuf.nano.MessageNano {
// 
//   private static volatile PortableResultProto[] _emptyArray;
//   public static PortableResultProto[] emptyArray() {
//     // Lazily initializes the empty array
//     if (_emptyArray == null) {
//       synchronized (
//           com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
//         if (_emptyArray == null) {
//           _emptyArray = new PortableResultProto[0];
//         }
//       }
//     }
//     return _emptyArray;
//   }
// 
//   // optional .PortableExceptionProto exception = 1;
//   public com.google.android.diskusage.proto.PortableExceptionProto exception;
// 
//   // optional bool evaluated = 2;
//   public boolean evaluated;
// 
//   public PortableResultProto() {
//     clear();
//   }
// 
//   public PortableResultProto clear() {
//     exception = null;
//     evaluated = false;
//     cachedSize = -1;
//     return this;
//   }
// 
//   @Override
//   public void writeTo(com.google.protobuf.nano.CodedOutputByteBufferNano output)
//       throws java.io.IOException {
//     if (this.exception != null) {
//       output.writeMessage(1, this.exception);
//     }
//     if (this.evaluated != false) {
//       output.writeBool(2, this.evaluated);
//     }
//     super.writeTo(output);
//   }
// 
//   @Override
//   protected int computeSerializedSize() {
//     int size = super.computeSerializedSize();
//     if (this.exception != null) {
//       size += com.google.protobuf.nano.CodedOutputByteBufferNano
//         .computeMessageSize(1, this.exception);
//     }
//     if (this.evaluated != false) {
//       size += com.google.protobuf.nano.CodedOutputByteBufferNano
//           .computeBoolSize(2, this.evaluated);
//     }
//     return size;
//   }
// 
//   @Override
//   public PortableResultProto mergeFrom(
//           com.google.protobuf.nano.CodedInputByteBufferNano input)
//       throws java.io.IOException {
//     while (true) {
//       int tag = input.readTag();
//       switch (tag) {
//         case 0:
//           return this;
//         default: {
//           if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
//             return this;
//           }
//           break;
//         }
//         case 10: {
//           if (this.exception == null) {
//             this.exception = new com.google.android.diskusage.proto.PortableExceptionProto();
//           }
//           input.readMessage(this.exception);
//           break;
//         }
//         case 16: {
//           this.evaluated = input.readBool();
//           break;
//         }
//       }
//     }
//   }
// 
//   public static PortableResultProto parseFrom(byte[] data)
//       throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
//     return com.google.protobuf.nano.MessageNano.mergeFrom(new PortableResultProto(), data);
//   }
// 
//   public static PortableResultProto parseFrom(
//           com.google.protobuf.nano.CodedInputByteBufferNano input)
//       throws java.io.IOException {
//     return new PortableResultProto().mergeFrom(input);
//   }
// }


// Path: app/src/main/java/com/google/android/diskusage/datasource/debug/PortableResult.java
import com.google.android.diskusage.proto.PortableResultProto;

package com.google.android.diskusage.datasource.debug;


public abstract class PortableResult {

  public abstract void run() throws Exception;


  public static PortableResultProto eval(PortableResult r) {