public final class android.hardware.location.GeofenceHardwareImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.hardware.location.GeofenceHardwareImpl
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "GeofenceHardwareImpl"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int FIRST_VERSION_WITH_CAPABILITIES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static android.hardware.location.GeofenceHardwareImpl sInstance;
    descriptor: Landroid/hardware/location/GeofenceHardwareImpl;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private android.os.PowerManager$WakeLock mWakeLock;
    descriptor: Landroid/os/PowerManager$WakeLock;
    flags: (0x0002) ACC_PRIVATE

  private final android.util.SparseArray<android.hardware.location.IGeofenceHardwareCallback> mGeofences;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/SparseArray<Landroid/hardware/location/IGeofenceHardwareCallback;>;

  private final java.util.ArrayList<android.hardware.location.IGeofenceHardwareMonitorCallback>[] mCallbacks;
    descriptor: [Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Ljava/util/ArrayList<Landroid/hardware/location/IGeofenceHardwareMonitorCallback;>;

  private final java.util.ArrayList<android.hardware.location.GeofenceHardwareImpl$Reaper> mReapers;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/hardware/location/GeofenceHardwareImpl$Reaper;>;

  private android.location.IFusedGeofenceHardware mFusedService;
    descriptor: Landroid/location/IFusedGeofenceHardware;
    flags: (0x0002) ACC_PRIVATE

  private android.location.IGpsGeofenceHardware mGpsService;
    descriptor: Landroid/location/IGpsGeofenceHardware;
    flags: (0x0002) ACC_PRIVATE

  private int mCapabilities;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mVersion;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int[] mSupportedMonitorTypes;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  private static final int GEOFENCE_TRANSITION_CALLBACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int ADD_GEOFENCE_CALLBACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int REMOVE_GEOFENCE_CALLBACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int PAUSE_GEOFENCE_CALLBACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int RESUME_GEOFENCE_CALLBACK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  private static final int GEOFENCE_CALLBACK_BINDER_DIED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  private static final int GEOFENCE_STATUS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int CALLBACK_ADD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int CALLBACK_REMOVE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int MONITOR_CALLBACK_BINDER_DIED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int REAPER_GEOFENCE_ADDED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int REAPER_MONITOR_CALLBACK_ADDED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int REAPER_REMOVED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int LOCATION_INVALID;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int LOCATION_HAS_LAT_LONG;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int LOCATION_HAS_ALTITUDE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int LOCATION_HAS_SPEED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int LOCATION_HAS_BEARING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int LOCATION_HAS_ACCURACY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int RESOLUTION_LEVEL_NONE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int RESOLUTION_LEVEL_COARSE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int RESOLUTION_LEVEL_FINE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final int CAPABILITY_GNSS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private android.os.Handler mGeofenceHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Handler mCallbacksHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Handler mReaperHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 43
            ldc "GeofenceHardwareImpl"
            iconst_3
            invokestatic android.util.Log.isLoggable:(Ljava/lang/String;I)Z
            putstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
         1: .line 96
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized android.hardware.location.GeofenceHardwareImpl getInstance(android.content.Context);
    descriptor: (Landroid/content/Context;)Landroid/hardware/location/GeofenceHardwareImpl;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.content.Context context
         0: .line 99
            getstatic android.hardware.location.GeofenceHardwareImpl.sInstance:Landroid/hardware/location/GeofenceHardwareImpl;
            ifnonnull 2
         1: .line 100
            new android.hardware.location.GeofenceHardwareImpl
            dup
            aload 0 /* context */
            invokespecial android.hardware.location.GeofenceHardwareImpl.<init>:(Landroid/content/Context;)V
            putstatic android.hardware.location.GeofenceHardwareImpl.sInstance:Landroid/hardware/location/GeofenceHardwareImpl;
         2: .line 102
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.sInstance:Landroid/hardware/location/GeofenceHardwareImpl;
            areturn
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  private void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // android.content.Context context
         0: .line 105
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
         2: .line 50
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            putfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
         3: .line 51
            aload 0 /* this */
         4: .line 52
            iconst_2
            anewarray java.util.ArrayList
            putfield android.hardware.location.GeofenceHardwareImpl.mCallbacks:[Ljava/util/ArrayList;
         5: .line 53
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.hardware.location.GeofenceHardwareImpl.mReapers:Ljava/util/ArrayList;
         6: .line 58
            aload 0 /* this */
            iconst_1
            putfield android.hardware.location.GeofenceHardwareImpl.mVersion:I
         7: .line 60
            aload 0 /* this */
            iconst_2
            newarray 10
            putfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
         8: .line 572
            aload 0 /* this */
            new android.hardware.location.GeofenceHardwareImpl$1
            dup
            aload 0 /* this */
            invokespecial android.hardware.location.GeofenceHardwareImpl$1.<init>:(Landroid/hardware/location/GeofenceHardwareImpl;)V
            putfield android.hardware.location.GeofenceHardwareImpl.mGeofenceHandler:Landroid/os/Handler;
         9: .line 704
            aload 0 /* this */
            new android.hardware.location.GeofenceHardwareImpl$2
            dup
            aload 0 /* this */
            invokespecial android.hardware.location.GeofenceHardwareImpl$2.<init>:(Landroid/hardware/location/GeofenceHardwareImpl;)V
            putfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
        10: .line 758
            aload 0 /* this */
            new android.hardware.location.GeofenceHardwareImpl$3
            dup
            aload 0 /* this */
            invokespecial android.hardware.location.GeofenceHardwareImpl$3.<init>:(Landroid/hardware/location/GeofenceHardwareImpl;)V
            putfield android.hardware.location.GeofenceHardwareImpl.mReaperHandler:Landroid/os/Handler;
        11: .line 106
            aload 0 /* this */
            aload 1 /* context */
            putfield android.hardware.location.GeofenceHardwareImpl.mContext:Landroid/content/Context;
        12: .line 108
            aload 0 /* this */
            iconst_0
        13: .line 109
            iconst_2
        14: .line 108
            invokevirtual android.hardware.location.GeofenceHardwareImpl.setMonitorAvailability:(II)V
        15: .line 110
            aload 0 /* this */
        16: .line 111
            iconst_1
        17: .line 112
            iconst_2
        18: .line 110
            invokevirtual android.hardware.location.GeofenceHardwareImpl.setMonitorAvailability:(II)V
        19: .line 114
            return
        end local 1 // android.content.Context context
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   20     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  private void acquireWakeLock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 117
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mWakeLock:Landroid/os/PowerManager$WakeLock;
            ifnonnull 4
         1: .line 119
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mContext:Landroid/content/Context;
            ldc "power"
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast android.os.PowerManager
         2: .line 118
            astore 1 /* powerManager */
        start local 1 // android.os.PowerManager powerManager
         3: .line 120
            aload 0 /* this */
            aload 1 /* powerManager */
            getstatic android.os.PowerManager.PARTIAL_WAKE_LOCK:I
            ldc "GeofenceHardwareImpl"
            invokevirtual android.os.PowerManager.newWakeLock:(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
            putfield android.hardware.location.GeofenceHardwareImpl.mWakeLock:Landroid/os/PowerManager$WakeLock;
        end local 1 // android.os.PowerManager powerManager
         4: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.acquire:()V
         5: .line 123
            return
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Landroid/hardware/location/GeofenceHardwareImpl;
            3    4     1  powerManager  Landroid/os/PowerManager;

  private void releaseWakeLock();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 126
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.isHeld:()Z
            ifeq 1
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mWakeLock:Landroid/os/PowerManager$WakeLock;
            invokevirtual android.os.PowerManager$WakeLock.release:()V
         1: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/hardware/location/GeofenceHardwareImpl;

  private void updateGpsHardwareAvailability();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 133
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            invokeinterface android.location.IGpsGeofenceHardware.isHardwareGeofenceSupported:()Z
            istore 1 /* gpsSupported */
        start local 1 // boolean gpsSupported
         1: .line 134
            goto 5
        end local 1 // boolean gpsSupported
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: pop
         3: .line 135
            ldc "GeofenceHardwareImpl"
            ldc "Remote Exception calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 136
            iconst_0
            istore 1 /* gpsSupported */
        start local 1 // boolean gpsSupported
         5: .line 139
      StackMap locals: int
      StackMap stack:
            iload 1 /* gpsSupported */
            ifeq 9
         6: .line 142
            aload 0 /* this */
            iconst_0
         7: .line 143
            iconst_0
         8: .line 142
            invokevirtual android.hardware.location.GeofenceHardwareImpl.setMonitorAvailability:(II)V
         9: .line 145
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean gpsSupported
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Landroid/hardware/location/GeofenceHardwareImpl;
            1    2     1  gpsSupported  Z
            5   10     1  gpsSupported  Z
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  private void updateFusedHardwareAvailability();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 150
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mVersion:I
            iconst_2
            if_icmplt 3
         1: .line 151
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCapabilities:I
            iconst_1
            iand
            ifne 3
         2: .line 150
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 2 /* hasGnnsCapabilities */
        start local 2 // boolean hasGnnsCapabilities
         5: .line 152
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnull 8
         6: .line 153
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            invokeinterface android.location.IFusedGeofenceHardware.isSupported:()Z
            ifeq 7
            iload 2 /* hasGnnsCapabilities */
            ifeq 7
            iconst_1
            goto 9
      StackMap locals: android.hardware.location.GeofenceHardwareImpl top int
      StackMap stack:
         7: iconst_0
            goto 9
         8: .line 154
      StackMap locals:
      StackMap stack:
            iconst_0
         9: .line 152
      StackMap locals:
      StackMap stack: int
            istore 1 /* fusedSupported */
        end local 2 // boolean hasGnnsCapabilities
        start local 1 // boolean fusedSupported
        10: .line 155
            goto 14
        end local 1 // boolean fusedSupported
      StackMap locals: android.hardware.location.GeofenceHardwareImpl
      StackMap stack: android.os.RemoteException
        11: pop
        12: .line 156
            ldc "GeofenceHardwareImpl"
            ldc "RemoteException calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 157
            iconst_0
            istore 1 /* fusedSupported */
        start local 1 // boolean fusedSupported
        14: .line 160
      StackMap locals: int
      StackMap stack:
            iload 1 /* fusedSupported */
            ifeq 19
        15: .line 161
            aload 0 /* this */
        16: .line 162
            iconst_1
        17: .line 163
            iconst_0
        18: .line 161
            invokevirtual android.hardware.location.GeofenceHardwareImpl.setMonitorAvailability:(II)V
        19: .line 165
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean fusedSupported
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Landroid/hardware/location/GeofenceHardwareImpl;
           10   11     1       fusedSupported  Z
           14   20     1       fusedSupported  Z
            5   10     2  hasGnnsCapabilities  Z
      Exception table:
        from    to  target  type
           0    10      11  Class android.os.RemoteException

  public void setGpsHardwareGeofence(android.location.IGpsGeofenceHardware);
    descriptor: (Landroid/location/IGpsGeofenceHardware;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // android.location.IGpsGeofenceHardware service
         0: .line 168
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            ifnonnull 4
         1: .line 169
            aload 0 /* this */
            aload 1 /* service */
            putfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
         2: .line 170
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.updateGpsHardwareAvailability:()V
         3: .line 171
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 1 /* service */
            ifnonnull 8
         5: .line 172
            aload 0 /* this */
            aconst_null
            putfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
         6: .line 173
            ldc "GeofenceHardwareImpl"
            ldc "GPS Geofence Hardware service seems to have crashed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 174
            goto 9
         8: .line 175
      StackMap locals:
      StackMap stack:
            ldc "GeofenceHardwareImpl"
            ldc "Error: GpsService being set again."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.location.IGpsGeofenceHardware service
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   10     1  service  Landroid/location/IGpsGeofenceHardware;
    MethodParameters:
         Name  Flags
      service  

  public void onCapabilities(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int capabilities
         0: .line 180
            aload 0 /* this */
            iload 1 /* capabilities */
            putfield android.hardware.location.GeofenceHardwareImpl.mCapabilities:I
         1: .line 181
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.updateFusedHardwareAvailability:()V
         2: .line 182
            return
        end local 1 // int capabilities
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  capabilities  I
    MethodParameters:
              Name  Flags
      capabilities  

  public void setVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int version
         0: .line 185
            aload 0 /* this */
            iload 1 /* version */
            putfield android.hardware.location.GeofenceHardwareImpl.mVersion:I
         1: .line 186
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.updateFusedHardwareAvailability:()V
         2: .line 187
            return
        end local 1 // int version
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  version  I
    MethodParameters:
         Name  Flags
      version  

  public void setFusedGeofenceHardware(android.location.IFusedGeofenceHardware);
    descriptor: (Landroid/location/IFusedGeofenceHardware;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // android.location.IFusedGeofenceHardware service
         0: .line 190
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnonnull 4
         1: .line 191
            aload 0 /* this */
            aload 1 /* service */
            putfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
         2: .line 192
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.updateFusedHardwareAvailability:()V
         3: .line 193
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 1 /* service */
            ifnonnull 8
         5: .line 194
            aload 0 /* this */
            aconst_null
            putfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
         6: .line 195
            ldc "GeofenceHardwareImpl"
            ldc "Fused Geofence Hardware service seems to have crashed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 196
            goto 9
         8: .line 197
      StackMap locals:
      StackMap stack:
            ldc "GeofenceHardwareImpl"
            ldc "Error: FusedService being set again"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.location.IFusedGeofenceHardware service
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   10     1  service  Landroid/location/IFusedGeofenceHardware;
    MethodParameters:
         Name  Flags
      service  

  public int[] getMonitoringTypes();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 204
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            dup
            astore 3
            monitorenter
         1: .line 205
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            iconst_0
            iaload
         2: .line 206
            iconst_2
         3: .line 205
            if_icmpeq 4
            iconst_1
            goto 5
      StackMap locals: android.hardware.location.GeofenceHardwareImpl top top int[]
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 1 /* gpsSupported */
        start local 1 // boolean gpsSupported
         6: .line 207
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            iconst_1
            iaload
         7: .line 208
            iconst_2
         8: .line 207
            if_icmpeq 9
            iconst_1
            goto 10
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int top int[]
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 2 /* fusedSupported */
        start local 2 // boolean fusedSupported
        11: .line 204
            aload 3
            monitorexit
        12: goto 15
        end local 2 // boolean fusedSupported
        end local 1 // boolean gpsSupported
      StackMap locals: android.hardware.location.GeofenceHardwareImpl top top int[]
      StackMap stack: java.lang.Throwable
        13: aload 3
            monitorexit
        14: athrow
        start local 1 // boolean gpsSupported
        start local 2 // boolean fusedSupported
        15: .line 211
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int
      StackMap stack:
            iload 1 /* gpsSupported */
            ifeq 21
        16: .line 212
            iload 2 /* fusedSupported */
            ifeq 20
        17: .line 213
            iconst_2
            newarray 10
            dup
            iconst_1
        18: .line 215
            iconst_1
            iastore
        19: .line 213
            areturn
        20: .line 217
      StackMap locals:
      StackMap stack:
            iconst_1
            newarray 10
            areturn
        21: .line 219
      StackMap locals:
      StackMap stack:
            iload 2 /* fusedSupported */
            ifeq 23
        22: .line 220
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            areturn
        23: .line 222
      StackMap locals:
      StackMap stack:
            iconst_0
            newarray 10
            areturn
        end local 2 // boolean fusedSupported
        end local 1 // boolean gpsSupported
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            6   13     1    gpsSupported  Z
           15   24     1    gpsSupported  Z
           11   13     2  fusedSupported  Z
           15   24     2  fusedSupported  Z
      Exception table:
        from    to  target  type
           1    12      13  any
          13    14      13  any

  public int getStatusOfMonitoringType(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
         0: .line 227
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            dup
            astore 2
            monitorenter
         1: .line 228
            iload 1 /* monitoringType */
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            arraylength
            if_icmpge 2
            iload 1 /* monitoringType */
            ifge 3
         2: .line 229
      StackMap locals: int[]
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Unknown monitoring type"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            iload 1 /* monitoringType */
            iaload
            aload 2
            monitorexit
         4: ireturn
         5: .line 227
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    7     1  monitoringType  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
                Name  Flags
      monitoringType  

  public int getCapabilitiesForMonitoringType(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
         0: .line 236
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            iload 1 /* monitoringType */
            iaload
            tableswitch { // 0 - 0
                    0: 1
              default: 6
          }
         1: .line 238
      StackMap locals:
      StackMap stack:
            iload 1 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 2
                    1: 3
              default: 6
          }
         2: .line 240
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         3: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mVersion:I
            iconst_2
            if_icmplt 5
         4: .line 243
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCapabilities:I
            ireturn
         5: .line 247
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 251
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    7     1  monitoringType  I
    MethodParameters:
                Name  Flags
      monitoringType  

  public boolean addCircularFence(int, android.hardware.location.GeofenceHardwareRequestParcelable, android.hardware.location.IGeofenceHardwareCallback);
    descriptor: (ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=7, args_size=4
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
        start local 2 // android.hardware.location.GeofenceHardwareRequestParcelable request
        start local 3 // android.hardware.location.IGeofenceHardwareCallback callback
         0: .line 258
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getId:()I
            istore 4 /* geofenceId */
        start local 4 // int geofenceId
         1: .line 262
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 7
         2: .line 264
            ldc "addCircularFence: monitoringType=%d, %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 265
            iload 1 /* monitoringType */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
         4: .line 266
            aload 2 /* request */
            aastore
         5: .line 263
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
         6: .line 267
            ldc "GeofenceHardwareImpl"
            aload 5 /* message */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 5 // java.lang.String message
         7: .line 275
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 6
            monitorenter
         8: .line 276
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 4 /* geofenceId */
            aload 3 /* callback */
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         9: .line 275
            aload 6
            monitorexit
        10: goto 13
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int android.hardware.location.GeofenceHardwareRequestParcelable android.hardware.location.IGeofenceHardwareCallback int top android.util.SparseArray
      StackMap stack: java.lang.Throwable
        11: aload 6
            monitorexit
        12: athrow
        13: .line 279
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int android.hardware.location.GeofenceHardwareRequestParcelable android.hardware.location.IGeofenceHardwareCallback int
      StackMap stack:
            iload 1 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 14
                    1: 30
              default: 41
          }
        14: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            ifnonnull 15
            iconst_0
            ireturn
        15: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
        16: .line 284
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getId:()I
        17: .line 285
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getLatitude:()D
        18: .line 286
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getLongitude:()D
        19: .line 287
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getRadius:()D
        20: .line 288
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getLastTransition:()I
        21: .line 289
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getMonitorTransitions:()I
        22: .line 290
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getNotificationResponsiveness:()I
        23: .line 291
            aload 2 /* request */
            invokevirtual android.hardware.location.GeofenceHardwareRequestParcelable.getUnknownTimer:()I
        24: .line 283
            invokeinterface android.location.IGpsGeofenceHardware.addCircularHardwareGeofence:(IDDDIIII)Z
            istore 5 /* result */
        start local 5 // boolean result
        25: .line 292
            goto 42
        end local 5 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        26: pop
        27: .line 293
            ldc "GeofenceHardwareImpl"
            ldc "AddGeofence: Remote Exception calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        28: .line 294
            iconst_0
            istore 5 /* result */
        start local 5 // boolean result
        29: .line 296
            goto 42
        end local 5 // boolean result
        30: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnonnull 32
        31: .line 299
            iconst_0
            ireturn
        32: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
        33: .line 303
            iconst_1
            anewarray android.hardware.location.GeofenceHardwareRequestParcelable
            dup
            iconst_0
            aload 2 /* request */
            aastore
        34: .line 302
            invokeinterface android.location.IFusedGeofenceHardware.addGeofences:([Landroid/hardware/location/GeofenceHardwareRequestParcelable;)V
        35: .line 304
            iconst_1
            istore 5 /* result */
        start local 5 // boolean result
        36: .line 305
            goto 42
        end local 5 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        37: pop
        38: .line 306
            ldc "GeofenceHardwareImpl"
            ldc "AddGeofence: RemoteException calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        39: .line 307
            iconst_0
            istore 5 /* result */
        start local 5 // boolean result
        40: .line 309
            goto 42
        end local 5 // boolean result
        41: .line 311
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* result */
        start local 5 // boolean result
        42: .line 313
      StackMap locals: int
      StackMap stack:
            iload 5 /* result */
            ifeq 47
        43: .line 314
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mReaperHandler:Landroid/os/Handler;
            iconst_1
            aload 3 /* callback */
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* m */
        start local 6 // android.os.Message m
        44: .line 315
            aload 6 /* m */
            iload 1 /* monitoringType */
            putfield android.os.Message.arg1:I
        45: .line 316
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mReaperHandler:Landroid/os/Handler;
            aload 6 /* m */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 6 // android.os.Message m
        46: .line 317
            goto 53
        47: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 6
            monitorenter
        48: .line 319
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 4 /* geofenceId */
            invokevirtual android.util.SparseArray.remove:(I)V
        49: .line 318
            aload 6
            monitorexit
        50: goto 53
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int android.hardware.location.GeofenceHardwareRequestParcelable android.hardware.location.IGeofenceHardwareCallback int int android.util.SparseArray
      StackMap stack: java.lang.Throwable
        51: aload 6
            monitorexit
        52: athrow
        53: .line 323
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 54
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "addCircularFence: Result is: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        54: .line 324
      StackMap locals:
      StackMap stack:
            iload 5 /* result */
            ireturn
        end local 5 // boolean result
        end local 4 // int geofenceId
        end local 3 // android.hardware.location.IGeofenceHardwareCallback callback
        end local 2 // android.hardware.location.GeofenceHardwareRequestParcelable request
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   55     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   55     1  monitoringType  I
            0   55     2         request  Landroid/hardware/location/GeofenceHardwareRequestParcelable;
            0   55     3        callback  Landroid/hardware/location/IGeofenceHardwareCallback;
            1   55     4      geofenceId  I
            6    7     5         message  Ljava/lang/String;
           25   26     5          result  Z
           29   30     5          result  Z
           36   37     5          result  Z
           40   41     5          result  Z
           42   55     5          result  Z
           44   46     6               m  Landroid/os/Message;
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
          15    25      26  Class android.os.RemoteException
          32    36      37  Class android.os.RemoteException
          48    50      51  any
          51    52      51  any
    MethodParameters:
                Name  Flags
      monitoringType  
      request         
      callback        

  public boolean removeGeofence(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
         0: .line 330
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "Remove Geofence: GeofenceId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 331
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* result */
        start local 3 // boolean result
         2: .line 333
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
         3: .line 334
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 1 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            ifnonnull 5
         4: .line 335
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Geofence "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " not registered."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 333
      StackMap locals: int android.util.SparseArray
      StackMap stack:
            aload 4
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 4
            monitorexit
         8: athrow
         9: .line 338
      StackMap locals:
      StackMap stack:
            iload 2 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 10
                    1: 17
              default: 26
          }
        10: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            ifnonnull 11
            iconst_0
            ireturn
        11: .line 342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            iload 1 /* geofenceId */
            invokeinterface android.location.IGpsGeofenceHardware.removeHardwareGeofence:(I)Z
            istore 3 /* result */
        12: .line 343
            goto 27
      StackMap locals:
      StackMap stack: android.os.RemoteException
        13: pop
        14: .line 344
            ldc "GeofenceHardwareImpl"
            ldc "RemoveGeofence: Remote Exception calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 345
            iconst_0
            istore 3 /* result */
        16: .line 347
            goto 27
        17: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnonnull 19
        18: .line 350
            iconst_0
            ireturn
        19: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            iconst_1
            newarray 10
            dup
            iconst_0
            iload 1 /* geofenceId */
            iastore
            invokeinterface android.location.IFusedGeofenceHardware.removeGeofences:([I)V
        20: .line 354
            iconst_1
            istore 3 /* result */
        21: .line 355
            goto 27
      StackMap locals:
      StackMap stack: android.os.RemoteException
        22: pop
        23: .line 356
            ldc "GeofenceHardwareImpl"
            ldc "RemoveGeofence: RemoteException calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        24: .line 357
            iconst_0
            istore 3 /* result */
        25: .line 359
            goto 27
        26: .line 361
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* result */
        27: .line 363
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 28
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "removeGeofence: Result is: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        28: .line 364
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // boolean result
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   29     1      geofenceId  I
            0   29     2  monitoringType  I
            2   29     3          result  Z
      Exception table:
        from    to  target  type
           3     6       7  any
           7     8       7  any
          11    12      13  Class android.os.RemoteException
          19    21      22  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      geofenceId      
      monitoringType  

  public boolean pauseGeofence(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
         0: .line 370
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "Pause Geofence: GeofenceId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 4
            monitorenter
         2: .line 373
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 1 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            ifnonnull 4
         3: .line 374
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Geofence "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " not registered."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 372
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int top android.util.SparseArray
      StackMap stack:
            aload 4
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 4
            monitorexit
         7: athrow
         8: .line 377
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int
      StackMap stack:
            iload 2 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 9
                    1: 16
              default: 25
          }
         9: .line 379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            ifnonnull 10
            iconst_0
            ireturn
        10: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            iload 1 /* geofenceId */
            invokeinterface android.location.IGpsGeofenceHardware.pauseHardwareGeofence:(I)Z
            istore 3 /* result */
        start local 3 // boolean result
        11: .line 382
            goto 26
        end local 3 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        12: pop
        13: .line 383
            ldc "GeofenceHardwareImpl"
            ldc "PauseGeofence: Remote Exception calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        14: .line 384
            iconst_0
            istore 3 /* result */
        start local 3 // boolean result
        15: .line 386
            goto 26
        end local 3 // boolean result
        16: .line 388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnonnull 18
        17: .line 389
            iconst_0
            ireturn
        18: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            iload 1 /* geofenceId */
            invokeinterface android.location.IFusedGeofenceHardware.pauseMonitoringGeofence:(I)V
        19: .line 393
            iconst_1
            istore 3 /* result */
        start local 3 // boolean result
        20: .line 394
            goto 26
        end local 3 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        21: pop
        22: .line 395
            ldc "GeofenceHardwareImpl"
            ldc "PauseGeofence: RemoteException calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        23: .line 396
            iconst_0
            istore 3 /* result */
        start local 3 // boolean result
        24: .line 398
            goto 26
        end local 3 // boolean result
        25: .line 400
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* result */
        start local 3 // boolean result
        26: .line 402
      StackMap locals: int
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 27
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "pauseGeofence: Result is: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        27: .line 403
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // boolean result
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   28     1      geofenceId  I
            0   28     2  monitoringType  I
           11   12     3          result  Z
           15   16     3          result  Z
           20   21     3          result  Z
           24   25     3          result  Z
           26   28     3          result  Z
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
          10    11      12  Class android.os.RemoteException
          18    20      21  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      geofenceId      
      monitoringType  

  public boolean resumeGeofence(int, int, int);
    descriptor: (III)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
        start local 3 // int monitorTransition
         0: .line 410
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "Resume Geofence: GeofenceId: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            dup
            astore 5
            monitorenter
         2: .line 413
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofences:Landroid/util/SparseArray;
            iload 1 /* geofenceId */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            ifnonnull 4
         3: .line 414
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Geofence "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " not registered."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 412
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int int top android.util.SparseArray
      StackMap stack:
            aload 5
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 5
            monitorexit
         7: athrow
         8: .line 417
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int int
      StackMap stack:
            iload 2 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 9
                    1: 16
              default: 25
          }
         9: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            ifnonnull 10
            iconst_0
            ireturn
        10: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGpsService:Landroid/location/IGpsGeofenceHardware;
            iload 1 /* geofenceId */
            iload 3 /* monitorTransition */
            invokeinterface android.location.IGpsGeofenceHardware.resumeHardwareGeofence:(II)Z
            istore 4 /* result */
        start local 4 // boolean result
        11: .line 422
            goto 26
        end local 4 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        12: pop
        13: .line 423
            ldc "GeofenceHardwareImpl"
            ldc "ResumeGeofence: Remote Exception calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        14: .line 424
            iconst_0
            istore 4 /* result */
        start local 4 // boolean result
        15: .line 426
            goto 26
        end local 4 // boolean result
        16: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            ifnonnull 18
        17: .line 429
            iconst_0
            ireturn
        18: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mFusedService:Landroid/location/IFusedGeofenceHardware;
            iload 1 /* geofenceId */
            iload 3 /* monitorTransition */
            invokeinterface android.location.IFusedGeofenceHardware.resumeMonitoringGeofence:(II)V
        19: .line 433
            iconst_1
            istore 4 /* result */
        start local 4 // boolean result
        20: .line 434
            goto 26
        end local 4 // boolean result
      StackMap locals:
      StackMap stack: android.os.RemoteException
        21: pop
        22: .line 435
            ldc "GeofenceHardwareImpl"
            ldc "ResumeGeofence: RemoteException calling LocationManagerService"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        23: .line 436
            iconst_0
            istore 4 /* result */
        start local 4 // boolean result
        24: .line 438
            goto 26
        end local 4 // boolean result
        25: .line 440
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* result */
        start local 4 // boolean result
        26: .line 442
      StackMap locals: int
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 27
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "resumeGeofence: Result is: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        27: .line 443
      StackMap locals:
      StackMap stack:
            iload 4 /* result */
            ireturn
        end local 4 // boolean result
        end local 3 // int monitorTransition
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   28     0               this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   28     1         geofenceId  I
            0   28     2     monitoringType  I
            0   28     3  monitorTransition  I
           11   12     4             result  Z
           15   16     4             result  Z
           20   21     4             result  Z
           24   25     4             result  Z
           26   28     4             result  Z
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any
          10    11      12  Class android.os.RemoteException
          18    20      21  Class android.os.RemoteException
    MethodParameters:
                   Name  Flags
      geofenceId         
      monitoringType     
      monitorTransition  

  public boolean registerForMonitorStateChangeCallback(int, android.hardware.location.IGeofenceHardwareMonitorCallback);
    descriptor: (ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
        start local 2 // android.hardware.location.IGeofenceHardwareMonitorCallback callback
         0: .line 449
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mReaperHandler:Landroid/os/Handler;
            iconst_2
            aload 2 /* callback */
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
         1: .line 448
            astore 3 /* reaperMessage */
        start local 3 // android.os.Message reaperMessage
         2: .line 450
            aload 3 /* reaperMessage */
            iload 1 /* monitoringType */
            putfield android.os.Message.arg1:I
         3: .line 451
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mReaperHandler:Landroid/os/Handler;
            aload 3 /* reaperMessage */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         4: .line 453
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
            iconst_2
            aload 2 /* callback */
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
            astore 4 /* m */
        start local 4 // android.os.Message m
         5: .line 454
            aload 4 /* m */
            iload 1 /* monitoringType */
            putfield android.os.Message.arg1:I
         6: .line 455
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
            aload 4 /* m */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         7: .line 456
            iconst_1
            ireturn
        end local 4 // android.os.Message m
        end local 3 // android.os.Message reaperMessage
        end local 2 // android.hardware.location.IGeofenceHardwareMonitorCallback callback
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    8     1  monitoringType  I
            0    8     2        callback  Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
            2    8     3   reaperMessage  Landroid/os/Message;
            5    8     4               m  Landroid/os/Message;
    MethodParameters:
                Name  Flags
      monitoringType  
      callback        

  public boolean unregisterForMonitorStateChangeCallback(int, android.hardware.location.IGeofenceHardwareMonitorCallback);
    descriptor: (ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
        start local 2 // android.hardware.location.IGeofenceHardwareMonitorCallback callback
         0: .line 461
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
            iconst_3
            aload 2 /* callback */
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
            astore 3 /* m */
        start local 3 // android.os.Message m
         1: .line 462
            aload 3 /* m */
            iload 1 /* monitoringType */
            putfield android.os.Message.arg1:I
         2: .line 463
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
            aload 3 /* m */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         3: .line 464
            iconst_1
            ireturn
        end local 3 // android.os.Message m
        end local 2 // android.hardware.location.IGeofenceHardwareMonitorCallback callback
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    4     1  monitoringType  I
            0    4     2        callback  Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
            1    4     3               m  Landroid/os/Message;
    MethodParameters:
                Name  Flags
      monitoringType  
      callback        

  public void reportGeofenceTransition(int, android.location.Location, int, long, int, int);
    descriptor: (ILandroid/location/Location;IJII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=7
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // android.location.Location location
        start local 3 // int transition
        start local 4 // long transitionTimestamp
        start local 6 // int monitoringType
        start local 7 // int sourcesUsed
         0: .line 477
            aload 2 /* location */
            ifnonnull 3
         1: .line 478
            ldc "GeofenceHardwareImpl"
            ldc "Invalid Geofence Transition: location=null"
            iconst_0
            anewarray java.lang.Object
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 479
            return
         3: .line 481
      StackMap locals:
      StackMap stack:
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 10
         4: .line 483
            ldc "GeofenceHardwareImpl"
         5: .line 484
            new java.lang.StringBuilder
            dup
            ldc "GeofenceTransition| "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* location */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ", transition:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* transition */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         6: .line 485
            ldc ", transitionTimestamp:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            lload 4 /* transitionTimestamp */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", monitoringType:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 486
            iload 6 /* monitoringType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", sourcesUsed:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* sourcesUsed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 484
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 482
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 489
      StackMap locals:
      StackMap stack:
            new android.hardware.location.GeofenceHardwareImpl$GeofenceTransition
            dup
            aload 0 /* this */
        11: .line 490
            iload 1 /* geofenceId */
        12: .line 491
            iload 3 /* transition */
        13: .line 492
            lload 4 /* transitionTimestamp */
        14: .line 493
            aload 2 /* location */
        15: .line 494
            iload 6 /* monitoringType */
        16: .line 495
            iload 7 /* sourcesUsed */
        17: .line 489
            invokespecial android.hardware.location.GeofenceHardwareImpl$GeofenceTransition.<init>:(Landroid/hardware/location/GeofenceHardwareImpl;IIJLandroid/location/Location;II)V
            astore 8 /* geofenceTransition */
        start local 8 // android.hardware.location.GeofenceHardwareImpl$GeofenceTransition geofenceTransition
        18: .line 496
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.acquireWakeLock:()V
        19: .line 498
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofenceHandler:Landroid/os/Handler;
        20: .line 499
            iconst_1
        21: .line 500
            aload 8 /* geofenceTransition */
        22: .line 498
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
            astore 9 /* message */
        start local 9 // android.os.Message message
        23: .line 501
            aload 9 /* message */
            invokevirtual android.os.Message.sendToTarget:()V
        24: .line 502
            return
        end local 9 // android.os.Message message
        end local 8 // android.hardware.location.GeofenceHardwareImpl$GeofenceTransition geofenceTransition
        end local 7 // int sourcesUsed
        end local 6 // int monitoringType
        end local 4 // long transitionTimestamp
        end local 3 // int transition
        end local 2 // android.location.Location location
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   25     0                 this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   25     1           geofenceId  I
            0   25     2             location  Landroid/location/Location;
            0   25     3           transition  I
            0   25     4  transitionTimestamp  J
            0   25     6       monitoringType  I
            0   25     7          sourcesUsed  I
           18   25     8   geofenceTransition  Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;
           23   25     9              message  Landroid/os/Message;
    MethodParameters:
                     Name  Flags
      geofenceId           
      location             
      transition           
      transitionTimestamp  
      monitoringType       
      sourcesUsed          

  public void reportGeofenceMonitorStatus(int, int, android.location.Location, int);
    descriptor: (IILandroid/location/Location;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
        start local 2 // int monitoringStatus
        start local 3 // android.location.Location location
        start local 4 // int source
         0: .line 512
            aload 0 /* this */
            iload 1 /* monitoringType */
            iload 2 /* monitoringStatus */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.setMonitorAvailability:(II)V
         1: .line 513
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.acquireWakeLock:()V
         2: .line 514
            new android.hardware.location.GeofenceHardwareMonitorEvent
            dup
         3: .line 515
            iload 1 /* monitoringType */
         4: .line 516
            iload 2 /* monitoringStatus */
         5: .line 517
            iload 4 /* source */
         6: .line 518
            aload 3 /* location */
         7: .line 514
            invokespecial android.hardware.location.GeofenceHardwareMonitorEvent.<init>:(IIILandroid/location/Location;)V
            astore 5 /* event */
        start local 5 // android.hardware.location.GeofenceHardwareMonitorEvent event
         8: .line 519
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mCallbacksHandler:Landroid/os/Handler;
            iconst_1
            aload 5 /* event */
            invokevirtual android.os.Handler.obtainMessage:(ILjava/lang/Object;)Landroid/os/Message;
            astore 6 /* message */
        start local 6 // android.os.Message message
         9: .line 520
            aload 6 /* message */
            invokevirtual android.os.Message.sendToTarget:()V
        10: .line 521
            return
        end local 6 // android.os.Message message
        end local 5 // android.hardware.location.GeofenceHardwareMonitorEvent event
        end local 4 // int source
        end local 3 // android.location.Location location
        end local 2 // int monitoringStatus
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0              this  Landroid/hardware/location/GeofenceHardwareImpl;
            0   11     1    monitoringType  I
            0   11     2  monitoringStatus  I
            0   11     3          location  Landroid/location/Location;
            0   11     4            source  I
            8   11     5             event  Landroid/hardware/location/GeofenceHardwareMonitorEvent;
            9   11     6           message  Landroid/os/Message;
    MethodParameters:
                  Name  Flags
      monitoringType    
      monitoringStatus  
      location          
      source            

  private void reportGeofenceOperationStatus(int, int, int);
    descriptor: (III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int operation
        start local 2 // int geofenceId
        start local 3 // int operationStatus
         0: .line 532
            aload 0 /* this */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.acquireWakeLock:()V
         1: .line 533
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mGeofenceHandler:Landroid/os/Handler;
            iload 1 /* operation */
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            astore 4 /* message */
        start local 4 // android.os.Message message
         2: .line 534
            aload 4 /* message */
            iload 2 /* geofenceId */
            putfield android.os.Message.arg1:I
         3: .line 535
            aload 4 /* message */
            iload 3 /* operationStatus */
            putfield android.os.Message.arg2:I
         4: .line 536
            aload 4 /* message */
            invokevirtual android.os.Message.sendToTarget:()V
         5: .line 537
            return
        end local 4 // android.os.Message message
        end local 3 // int operationStatus
        end local 2 // int geofenceId
        end local 1 // int operation
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    6     1        operation  I
            0    6     2       geofenceId  I
            0    6     3  operationStatus  I
            2    6     4          message  Landroid/os/Message;
    MethodParameters:
                 Name  Flags
      operation        
      geofenceId       
      operationStatus  

  public void reportGeofenceAddStatus(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int status
         0: .line 543
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "AddCallback| id:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", status:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            iload 1 /* geofenceId */
            iload 2 /* status */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.reportGeofenceOperationStatus:(III)V
         2: .line 545
            return
        end local 2 // int status
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  geofenceId  I
            0    3     2      status  I
    MethodParameters:
            Name  Flags
      geofenceId  
      status      

  public void reportGeofenceRemoveStatus(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int status
         0: .line 551
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "RemoveCallback| id:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", status:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_3
            iload 1 /* geofenceId */
            iload 2 /* status */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.reportGeofenceOperationStatus:(III)V
         2: .line 553
            return
        end local 2 // int status
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  geofenceId  I
            0    3     2      status  I
    MethodParameters:
            Name  Flags
      geofenceId  
      status      

  public void reportGeofencePauseStatus(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int status
         0: .line 559
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "PauseCallbac| id:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", status"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            iload 1 /* geofenceId */
            iload 2 /* status */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.reportGeofenceOperationStatus:(III)V
         2: .line 561
            return
        end local 2 // int status
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  geofenceId  I
            0    3     2      status  I
    MethodParameters:
            Name  Flags
      geofenceId  
      status      

  public void reportGeofenceResumeStatus(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int geofenceId
        start local 2 // int status
         0: .line 567
            getstatic android.hardware.location.GeofenceHardwareImpl.DEBUG:Z
            ifeq 1
            ldc "GeofenceHardwareImpl"
            new java.lang.StringBuilder
            dup
            ldc "ResumeCallback| id:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* geofenceId */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", status:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_5
            iload 1 /* geofenceId */
            iload 2 /* status */
            invokevirtual android.hardware.location.GeofenceHardwareImpl.reportGeofenceOperationStatus:(III)V
         2: .line 569
            return
        end local 2 // int status
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    3     1  geofenceId  I
            0    3     2      status  I
    MethodParameters:
            Name  Flags
      geofenceId  
      status      

  private void setMonitorAvailability(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitor
        start local 2 // int val
         0: .line 823
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            dup
            astore 3
            monitorenter
         1: .line 824
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardwareImpl.mSupportedMonitorTypes:[I
            iload 1 /* monitor */
            iload 2 /* val */
            iastore
         2: .line 823
            aload 3
            monitorexit
         3: goto 6
      StackMap locals: android.hardware.location.GeofenceHardwareImpl int int int[]
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
         6: .line 826
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int val
        end local 1 // int monitor
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    7     1  monitor  I
            0    7     2      val  I
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
         Name  Flags
      monitor  
      val      

  int getMonitoringResolutionLevel(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
        start local 1 // int monitoringType
         0: .line 830
            iload 1 /* monitoringType */
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 832
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
         2: .line 834
      StackMap locals:
      StackMap stack:
            iconst_3
            ireturn
         3: .line 836
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Landroid/hardware/location/GeofenceHardwareImpl;
            0    4     1  monitoringType  I
    MethodParameters:
                Name  Flags
      monitoringType  

  int getAllowedResolutionLevel(int, int);
    descriptor: (II)I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardwareImpl this
         0: .line 921
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tandroid.Manifest.permission.ACCESS_FINE_LOCATION cannot be resolved to a type\n\tandroid.Manifest.permission.ACCESS_COARSE_LOCATION cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.hardware.location.GeofenceHardwareImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/hardware/location/GeofenceHardwareImpl;
    MethodParameters:
      Name  Flags
      pid   
      uid   
}
SourceFile: "GeofenceHardwareImpl.java"
NestMembers:
  android.hardware.location.GeofenceHardwareImpl$1  android.hardware.location.GeofenceHardwareImpl$2  android.hardware.location.GeofenceHardwareImpl$3  android.hardware.location.GeofenceHardwareImpl$GeofenceTransition  android.hardware.location.GeofenceHardwareImpl$Reaper
InnerClasses:
  android.hardware.location.GeofenceHardwareImpl$1
  android.hardware.location.GeofenceHardwareImpl$2
  android.hardware.location.GeofenceHardwareImpl$3
  private GeofenceTransition = android.hardware.location.GeofenceHardwareImpl$GeofenceTransition of android.hardware.location.GeofenceHardwareImpl
  Reaper = android.hardware.location.GeofenceHardwareImpl$Reaper of android.hardware.location.GeofenceHardwareImpl
  public final WakeLock = android.os.PowerManager$WakeLock of android.os.PowerManager