public final class android.hardware.location.GeofenceHardware
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.hardware.location.GeofenceHardware
  super_class: java.lang.Object
{
  private android.hardware.location.IGeofenceHardware mService;
    descriptor: Landroid/hardware/location/IGeofenceHardware;
    flags: (0x0002) ACC_PRIVATE

  static final int NUM_MONITORS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int MONITORING_TYPE_GPS_HARDWARE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MONITORING_TYPE_FUSED_HARDWARE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MONITOR_CURRENTLY_AVAILABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MONITOR_CURRENTLY_UNAVAILABLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MONITOR_UNSUPPORTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int GEOFENCE_ENTERED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int GEOFENCE_EXITED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int GEOFENCE_UNCERTAIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int GEOFENCE_SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int GEOFENCE_ERROR_TOO_MANY_GEOFENCES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int GEOFENCE_ERROR_ID_EXISTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int GEOFENCE_ERROR_ID_UNKNOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int GEOFENCE_ERROR_INVALID_TRANSITION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int GEOFENCE_FAILURE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int GEOFENCE_ERROR_INSUFFICIENT_MEMORY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int SOURCE_TECHNOLOGY_GNSS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int SOURCE_TECHNOLOGY_WIFI;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int SOURCE_TECHNOLOGY_SENSORS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int SOURCE_TECHNOLOGY_CELL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int SOURCE_TECHNOLOGY_BLUETOOTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private java.util.HashMap<android.hardware.location.GeofenceHardwareCallback, android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper> mCallbacks;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Landroid/hardware/location/GeofenceHardwareCallback;Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;>;

  private java.util.HashMap<android.hardware.location.GeofenceHardwareMonitorCallback, android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper> mMonitorCallbacks;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Landroid/hardware/location/GeofenceHardwareMonitorCallback;Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;>;

  public void <init>(android.hardware.location.IGeofenceHardware);
    descriptor: (Landroid/hardware/location/IGeofenceHardware;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // android.hardware.location.IGeofenceHardware service
         0: .line 171
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 165
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
         2: .line 167
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
         3: .line 172
            aload 0 /* this */
            aload 1 /* service */
            putfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
         4: .line 173
            return
        end local 1 // android.hardware.location.IGeofenceHardware service
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/hardware/location/GeofenceHardware;
            0    5     1  service  Landroid/hardware/location/IGeofenceHardware;
    MethodParameters:
         Name  Flags
      service  

  public int[] getMonitoringTypes();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.hardware.location.GeofenceHardware this
         0: .line 189
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            invokeinterface android.hardware.location.IGeofenceHardware.getMonitoringTypes:()[I
         1: areturn
         2: .line 190
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 192
            iconst_0
            newarray 10
            areturn
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/hardware/location/GeofenceHardware;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public int getStatusOfMonitoringType(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int monitoringType
         0: .line 212
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* monitoringType */
            invokeinterface android.hardware.location.IGeofenceHardware.getStatusOfMonitoringType:(I)I
         1: ireturn
         2: .line 213
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 214
            iconst_2
            ireturn
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Landroid/hardware/location/GeofenceHardware;
            0    4     1  monitoringType  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      monitoringType  

  public boolean addGeofence(int, int, android.hardware.location.GeofenceHardwareRequest, android.hardware.location.GeofenceHardwareCallback);
    descriptor: (IILandroid/hardware/location/GeofenceHardwareRequest;Landroid/hardware/location/GeofenceHardwareCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
        start local 3 // android.hardware.location.GeofenceHardwareRequest geofenceRequest
        start local 4 // android.hardware.location.GeofenceHardwareCallback callback
         0: .line 271
            aload 3 /* geofenceRequest */
            invokevirtual android.hardware.location.GeofenceHardwareRequest.getType:()I
            ifne 7
         1: .line 272
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
         2: .line 273
            iload 2 /* monitoringType */
         3: .line 274
            new android.hardware.location.GeofenceHardwareRequestParcelable
            dup
            iload 1 /* geofenceId */
            aload 3 /* geofenceRequest */
            invokespecial android.hardware.location.GeofenceHardwareRequestParcelable.<init>:(ILandroid/hardware/location/GeofenceHardwareRequest;)V
         4: .line 275
            aload 0 /* this */
            aload 4 /* callback */
            invokevirtual android.hardware.location.GeofenceHardware.getCallbackWrapper:(Landroid/hardware/location/GeofenceHardwareCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;
         5: .line 272
            invokeinterface android.hardware.location.IGeofenceHardware.addCircularFence:(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
         6: ireturn
         7: .line 277
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Geofence Request type not supported"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 279
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         9: .line 281
            iconst_0
            ireturn
        end local 4 // android.hardware.location.GeofenceHardwareCallback callback
        end local 3 // android.hardware.location.GeofenceHardwareRequest geofenceRequest
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             this  Landroid/hardware/location/GeofenceHardware;
            0   10     1       geofenceId  I
            0   10     2   monitoringType  I
            0   10     3  geofenceRequest  Landroid/hardware/location/GeofenceHardwareRequest;
            0   10     4         callback  Landroid/hardware/location/GeofenceHardwareCallback;
      Exception table:
        from    to  target  type
           0     6       8  Class android.os.RemoteException
           7     8       8  Class android.os.RemoteException
    MethodParameters:
                 Name  Flags
      geofenceId       
      monitoringType   
      geofenceRequest  
      callback         

  public boolean removeGeofence(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
         0: .line 308
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* geofenceId */
            iload 2 /* monitoringType */
            invokeinterface android.hardware.location.IGeofenceHardware.removeGeofence:(II)Z
         1: ireturn
         2: .line 309
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 311
            iconst_0
            ireturn
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Landroid/hardware/location/GeofenceHardware;
            0    4     1      geofenceId  I
            0    4     2  monitoringType  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      geofenceId      
      monitoringType  

  public boolean pauseGeofence(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
         0: .line 338
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* geofenceId */
            iload 2 /* monitoringType */
            invokeinterface android.hardware.location.IGeofenceHardware.pauseGeofence:(II)Z
         1: ireturn
         2: .line 339
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 341
            iconst_0
            ireturn
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Landroid/hardware/location/GeofenceHardware;
            0    4     1      geofenceId  I
            0    4     2  monitoringType  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      geofenceId      
      monitoringType  

  public boolean resumeGeofence(int, int, int);
    descriptor: (III)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int geofenceId
        start local 2 // int monitoringType
        start local 3 // int monitorTransition
         0: .line 370
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* geofenceId */
            iload 2 /* monitoringType */
            iload 3 /* monitorTransition */
            invokeinterface android.hardware.location.IGeofenceHardware.resumeGeofence:(III)Z
         1: ireturn
         2: .line 371
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         3: .line 373
            iconst_0
            ireturn
        end local 3 // int monitorTransition
        end local 2 // int monitoringType
        end local 1 // int geofenceId
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Landroid/hardware/location/GeofenceHardware;
            0    4     1         geofenceId  I
            0    4     2     monitoringType  I
            0    4     3  monitorTransition  I
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
                   Name  Flags
      geofenceId         
      monitoringType     
      monitorTransition  

  public boolean registerForMonitorStateChangeCallback(int, android.hardware.location.GeofenceHardwareMonitorCallback);
    descriptor: (ILandroid/hardware/location/GeofenceHardwareMonitorCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int monitoringType
        start local 2 // android.hardware.location.GeofenceHardwareMonitorCallback callback
         0: .line 401
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* monitoringType */
         1: .line 402
            aload 0 /* this */
            aload 2 /* callback */
            invokevirtual android.hardware.location.GeofenceHardware.getMonitorCallbackWrapper:(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
         2: .line 401
            invokeinterface android.hardware.location.IGeofenceHardware.registerForMonitorStateChangeCallback:(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
         3: ireturn
         4: .line 403
      StackMap locals:
      StackMap stack: android.os.RemoteException
            pop
         5: .line 405
            iconst_0
            ireturn
        end local 2 // android.hardware.location.GeofenceHardwareMonitorCallback callback
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Landroid/hardware/location/GeofenceHardware;
            0    6     1  monitoringType  I
            0    6     2        callback  Landroid/hardware/location/GeofenceHardwareMonitorCallback;
      Exception table:
        from    to  target  type
           0     3       4  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      monitoringType  
      callback        

  public boolean unregisterForMonitorStateChangeCallback(int, android.hardware.location.GeofenceHardwareMonitorCallback);
    descriptor: (ILandroid/hardware/location/GeofenceHardwareMonitorCallback;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // int monitoringType
        start local 2 // android.hardware.location.GeofenceHardwareMonitorCallback callback
         0: .line 428
            iconst_0
            istore 3 /* result */
        start local 3 // boolean result
         1: .line 430
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mService:Landroid/hardware/location/IGeofenceHardware;
            iload 1 /* monitoringType */
         2: .line 431
            aload 0 /* this */
            aload 2 /* callback */
            invokevirtual android.hardware.location.GeofenceHardware.getMonitorCallbackWrapper:(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
         3: .line 430
            invokeinterface android.hardware.location.IGeofenceHardware.unregisterForMonitorStateChangeCallback:(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
            istore 3 /* result */
         4: .line 432
            iload 3 /* result */
            ifeq 7
            aload 0 /* this */
            aload 2 /* callback */
            invokevirtual android.hardware.location.GeofenceHardware.removeMonitorCallback:(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
         5: .line 434
            goto 7
      StackMap locals: android.hardware.location.GeofenceHardware int android.hardware.location.GeofenceHardwareMonitorCallback int
      StackMap stack: android.os.RemoteException
         6: pop
         7: .line 436
      StackMap locals:
      StackMap stack:
            iload 3 /* result */
            ireturn
        end local 3 // boolean result
        end local 2 // android.hardware.location.GeofenceHardwareMonitorCallback callback
        end local 1 // int monitoringType
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Landroid/hardware/location/GeofenceHardware;
            0    8     1  monitoringType  I
            0    8     2        callback  Landroid/hardware/location/GeofenceHardwareMonitorCallback;
            1    8     3          result  Z
      Exception table:
        from    to  target  type
           1     5       6  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      monitoringType  
      callback        

  private void removeCallback(android.hardware.location.GeofenceHardwareCallback);
    descriptor: (Landroid/hardware/location/GeofenceHardwareCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // android.hardware.location.GeofenceHardwareCallback callback
         0: .line 441
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         1: .line 442
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 441
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.hardware.location.GeofenceHardware android.hardware.location.GeofenceHardwareCallback java.util.HashMap
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 444
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.location.GeofenceHardwareCallback callback
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/hardware/location/GeofenceHardware;
            0    7     1  callback  Landroid/hardware/location/GeofenceHardwareCallback;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      callback  

  private android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper getCallbackWrapper(android.hardware.location.GeofenceHardwareCallback);
    descriptor: (Landroid/hardware/location/GeofenceHardwareCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // android.hardware.location.GeofenceHardwareCallback callback
         0: .line 447
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         1: .line 448
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper
            astore 3 /* wrapper */
        start local 3 // android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper wrapper
         2: .line 449
            aload 3 /* wrapper */
            ifnonnull 5
         3: .line 450
            new android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper
            dup
            aload 0 /* this */
            aload 1 /* callback */
            invokespecial android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper.<init>:(Landroid/hardware/location/GeofenceHardware;Landroid/hardware/location/GeofenceHardwareCallback;)V
            astore 3 /* wrapper */
         4: .line 451
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            aload 3 /* wrapper */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 453
      StackMap locals: java.util.HashMap android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper
      StackMap stack:
            aload 3 /* wrapper */
            aload 2
            monitorexit
         6: areturn
        end local 3 // android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper wrapper
         7: .line 447
      StackMap locals: android.hardware.location.GeofenceHardware android.hardware.location.GeofenceHardwareCallback java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // android.hardware.location.GeofenceHardwareCallback callback
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/hardware/location/GeofenceHardware;
            0    9     1  callback  Landroid/hardware/location/GeofenceHardwareCallback;
            2    7     3   wrapper  Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      callback  

  private void removeMonitorCallback(android.hardware.location.GeofenceHardwareMonitorCallback);
    descriptor: (Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // android.hardware.location.GeofenceHardwareMonitorCallback callback
         0: .line 458
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         1: .line 459
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 458
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.hardware.location.GeofenceHardware android.hardware.location.GeofenceHardwareMonitorCallback java.util.HashMap
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 461
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.hardware.location.GeofenceHardwareMonitorCallback callback
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Landroid/hardware/location/GeofenceHardware;
            0    7     1  callback  Landroid/hardware/location/GeofenceHardwareMonitorCallback;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      callback  

  private android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper getMonitorCallbackWrapper(android.hardware.location.GeofenceHardwareMonitorCallback);
    descriptor: (Landroid/hardware/location/GeofenceHardwareMonitorCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.hardware.location.GeofenceHardware this
        start local 1 // android.hardware.location.GeofenceHardwareMonitorCallback callback
         0: .line 465
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         1: .line 466
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper
            astore 3 /* wrapper */
        start local 3 // android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper wrapper
         2: .line 467
            aload 3 /* wrapper */
            ifnonnull 5
         3: .line 468
            new android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper
            dup
            aload 0 /* this */
            aload 1 /* callback */
            invokespecial android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper.<init>:(Landroid/hardware/location/GeofenceHardware;Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
            astore 3 /* wrapper */
         4: .line 469
            aload 0 /* this */
            getfield android.hardware.location.GeofenceHardware.mMonitorCallbacks:Ljava/util/HashMap;
            aload 1 /* callback */
            aload 3 /* wrapper */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 471
      StackMap locals: java.util.HashMap android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper
      StackMap stack:
            aload 3 /* wrapper */
            aload 2
            monitorexit
         6: areturn
        end local 3 // android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper wrapper
         7: .line 465
      StackMap locals: android.hardware.location.GeofenceHardware android.hardware.location.GeofenceHardwareMonitorCallback java.util.HashMap
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // android.hardware.location.GeofenceHardwareMonitorCallback callback
        end local 0 // android.hardware.location.GeofenceHardware this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/hardware/location/GeofenceHardware;
            0    9     1  callback  Landroid/hardware/location/GeofenceHardwareMonitorCallback;
            2    7     3   wrapper  Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      callback  
}
SourceFile: "GeofenceHardware.java"
NestMembers:
  android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper  android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper
InnerClasses:
  GeofenceHardwareCallbackWrapper = android.hardware.location.GeofenceHardware$GeofenceHardwareCallbackWrapper of android.hardware.location.GeofenceHardware
  GeofenceHardwareMonitorCallbackWrapper = android.hardware.location.GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper of android.hardware.location.GeofenceHardware
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()