public final class android.view.DisplayCutout
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.view.DisplayCutout
  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: "DisplayCutout"

  private static final java.lang.String BOTTOM_MARKER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "@bottom"

  private static final java.lang.String DP_MARKER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "@dp"

  private static final java.lang.String RIGHT_MARKER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "@right"

  public static final java.lang.String EMULATION_OVERLAY_CATEGORY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.internal.display_cutout_emulation"

  private static final android.graphics.Rect ZERO_RECT;
    descriptor: Landroid/graphics/Rect;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final android.graphics.Region EMPTY_REGION;
    descriptor: Landroid/graphics/Region;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final android.view.DisplayCutout NO_CUTOUT;
    descriptor: Landroid/view/DisplayCutout;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final android.util.Pair<android.graphics.Path, android.view.DisplayCutout> NULL_PAIR;
    descriptor: Landroid/util/Pair;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Landroid/util/Pair<Landroid/graphics/Path;Landroid/view/DisplayCutout;>;

  private static final java.lang.Object CACHE_LOCK;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.String sCachedSpec;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "CACHE_LOCK")

  private static int sCachedDisplayWidth;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "CACHE_LOCK")

  private static int sCachedDisplayHeight;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "CACHE_LOCK")

  private static float sCachedDensity;
    descriptor: F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "CACHE_LOCK")

  private static android.util.Pair<android.graphics.Path, android.view.DisplayCutout> sCachedCutout;
    descriptor: Landroid/util/Pair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Landroid/util/Pair<Landroid/graphics/Path;Landroid/view/DisplayCutout;>;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "CACHE_LOCK")

  private final android.graphics.Rect mSafeInsets;
    descriptor: Landroid/graphics/Rect;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.graphics.Region mBounds;
    descriptor: Landroid/graphics/Region;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 70
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            putstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
         1: .line 71
            new android.graphics.Region
            dup
            invokespecial android.graphics.Region.<init>:()V
            putstatic android.view.DisplayCutout.EMPTY_REGION:Landroid/graphics/Region;
         2: .line 78
            new android.view.DisplayCutout
            dup
            getstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
            getstatic android.view.DisplayCutout.EMPTY_REGION:Landroid/graphics/Region;
         3: .line 79
            iconst_0
         4: .line 78
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
            putstatic android.view.DisplayCutout.NO_CUTOUT:Landroid/view/DisplayCutout;
         5: .line 82
            new android.util.Pair
            dup
            aconst_null
            aconst_null
            invokespecial android.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            putstatic android.view.DisplayCutout.NULL_PAIR:Landroid/util/Pair;
         6: .line 83
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic android.view.DisplayCutout.CACHE_LOCK:Ljava/lang/Object;
         7: .line 94
            getstatic android.view.DisplayCutout.NULL_PAIR:Landroid/util/Pair;
            putstatic android.view.DisplayCutout.sCachedCutout:Landroid/util/Pair;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.graphics.Rect, java.util.List<android.graphics.Rect>);
    descriptor: (Landroid/graphics/Rect;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.view.DisplayCutout this
        start local 1 // android.graphics.Rect safeInsets
        start local 2 // java.util.List boundingRects
         0: .line 109
            aload 0 /* this */
            aload 1 /* safeInsets */
            ifnull 1
            new android.graphics.Rect
            dup
            aload 1 /* safeInsets */
            invokespecial android.graphics.Rect.<init>:(Landroid/graphics/Rect;)V
            goto 2
      StackMap locals:
      StackMap stack: uninitialized-this
         1: getstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
         2: .line 110
      StackMap locals: uninitialized-this android.graphics.Rect java.util.List
      StackMap stack: uninitialized-this android.graphics.Rect
            aload 2 /* boundingRects */
            invokestatic android.view.DisplayCutout.boundingRectsToRegion:(Ljava/util/List;)Landroid/graphics/Region;
         3: .line 111
            iconst_1
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
         4: .line 112
            return
        end local 2 // java.util.List boundingRects
        end local 1 // android.graphics.Rect safeInsets
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Landroid/view/DisplayCutout;
            0    5     1     safeInsets  Landroid/graphics/Rect;
            0    5     2  boundingRects  Ljava/util/List<Landroid/graphics/Rect;>;
    Signature: (Landroid/graphics/Rect;Ljava/util/List<Landroid/graphics/Rect;>;)V
    MethodParameters:
               Name  Flags
      safeInsets     
      boundingRects  

  private void <init>(android.graphics.Rect, android.graphics.Region, boolean);
    descriptor: (Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.view.DisplayCutout this
        start local 1 // android.graphics.Rect safeInsets
        start local 2 // android.graphics.Region bounds
        start local 3 // boolean copyArguments
         0: .line 120
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 121
            aload 0 /* this */
            aload 1 /* safeInsets */
            ifnonnull 2
            getstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
            goto 4
         2: .line 122
      StackMap locals: android.view.DisplayCutout android.graphics.Rect android.graphics.Region int
      StackMap stack: android.view.DisplayCutout
            iload 3 /* copyArguments */
            ifeq 3
            new android.graphics.Rect
            dup
            aload 1 /* safeInsets */
            invokespecial android.graphics.Rect.<init>:(Landroid/graphics/Rect;)V
            goto 4
      StackMap locals:
      StackMap stack: android.view.DisplayCutout
         3: aload 1 /* safeInsets */
         4: .line 121
      StackMap locals: android.view.DisplayCutout android.graphics.Rect android.graphics.Region int
      StackMap stack: android.view.DisplayCutout android.graphics.Rect
            putfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
         5: .line 123
            aload 0 /* this */
            aload 2 /* bounds */
            ifnonnull 6
            invokestatic android.graphics.Region.obtain:()Landroid/graphics/Region;
            goto 8
         6: .line 124
      StackMap locals:
      StackMap stack: android.view.DisplayCutout
            iload 3 /* copyArguments */
            ifeq 7
            aload 2 /* bounds */
            invokestatic android.graphics.Region.obtain:(Landroid/graphics/Region;)Landroid/graphics/Region;
            goto 8
      StackMap locals:
      StackMap stack: android.view.DisplayCutout
         7: aload 2 /* bounds */
         8: .line 123
      StackMap locals: android.view.DisplayCutout android.graphics.Rect android.graphics.Region int
      StackMap stack: android.view.DisplayCutout android.graphics.Region
            putfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
         9: .line 125
            return
        end local 3 // boolean copyArguments
        end local 2 // android.graphics.Region bounds
        end local 1 // android.graphics.Rect safeInsets
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Landroid/view/DisplayCutout;
            0   10     1     safeInsets  Landroid/graphics/Rect;
            0   10     2         bounds  Landroid/graphics/Region;
            0   10     3  copyArguments  Z
    MethodParameters:
               Name  Flags
      safeInsets     
      bounds         
      copyArguments  

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 134
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            getstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public boolean isBoundsEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 143
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.isEmpty:()Z
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public int getSafeInsetTop();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 148
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            getfield android.graphics.Rect.top:I
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public int getSafeInsetBottom();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 153
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            getfield android.graphics.Rect.bottom:I
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public int getSafeInsetLeft();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 158
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            getfield android.graphics.Rect.left:I
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public int getSafeInsetRight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 163
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            getfield android.graphics.Rect.right:I
            ireturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public android.graphics.Rect getSafeInsets();
    descriptor: ()Landroid/graphics/Rect;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 173
            new android.graphics.Rect
            dup
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            invokespecial android.graphics.Rect.<init>:(Landroid/graphics/Rect;)V
            areturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public android.graphics.Region getBounds();
    descriptor: ()Landroid/graphics/Region;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 197
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokestatic android.graphics.Region.obtain:(Landroid/graphics/Region;)Landroid/graphics/Region;
            areturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;

  public java.util.List<android.graphics.Rect> getBoundingRects();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 210
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 211
            invokestatic android.graphics.Region.obtain:()Landroid/graphics/Region;
            astore 2 /* bounds */
        start local 2 // android.graphics.Region bounds
         2: .line 213
            aload 2 /* bounds */
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.set:(Landroid/graphics/Region;)Z
            pop
         3: .line 214
            aload 2 /* bounds */
            iconst_0
            iconst_0
            ldc 2147483647
            aload 0 /* this */
            invokevirtual android.view.DisplayCutout.getSafeInsetTop:()I
            getstatic android.graphics.Region$Op.INTERSECT:Landroid/graphics/Region$Op;
            invokevirtual android.graphics.Region.op:(IIIILandroid/graphics/Region$Op;)Z
            pop
         4: .line 215
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.isEmpty:()Z
            ifne 6
         5: .line 216
            aload 1 /* result */
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.getBounds:()Landroid/graphics/Rect;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 219
      StackMap locals: java.util.List android.graphics.Region
      StackMap stack:
            aload 2 /* bounds */
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.set:(Landroid/graphics/Region;)Z
            pop
         7: .line 220
            aload 2 /* bounds */
            iconst_0
            iconst_0
            aload 0 /* this */
            invokevirtual android.view.DisplayCutout.getSafeInsetLeft:()I
            ldc 2147483647
            getstatic android.graphics.Region$Op.INTERSECT:Landroid/graphics/Region$Op;
            invokevirtual android.graphics.Region.op:(IIIILandroid/graphics/Region$Op;)Z
            pop
         8: .line 221
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.isEmpty:()Z
            ifne 10
         9: .line 222
            aload 1 /* result */
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.getBounds:()Landroid/graphics/Rect;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 225
      StackMap locals:
      StackMap stack:
            aload 2 /* bounds */
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.set:(Landroid/graphics/Region;)Z
            pop
        11: .line 226
            aload 2 /* bounds */
            aload 0 /* this */
            invokevirtual android.view.DisplayCutout.getSafeInsetLeft:()I
            iconst_1
            iadd
            aload 0 /* this */
            invokevirtual android.view.DisplayCutout.getSafeInsetTop:()I
            iconst_1
            iadd
        12: .line 227
            ldc 2147483647
            ldc 2147483647
            getstatic android.graphics.Region$Op.INTERSECT:Landroid/graphics/Region$Op;
        13: .line 226
            invokevirtual android.graphics.Region.op:(IIIILandroid/graphics/Region$Op;)Z
            pop
        14: .line 228
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.isEmpty:()Z
            ifne 16
        15: .line 229
            aload 1 /* result */
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.getBounds:()Landroid/graphics/Rect;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 231
      StackMap locals:
      StackMap stack:
            aload 2 /* bounds */
            invokevirtual android.graphics.Region.recycle:()V
        17: .line 232
            aload 1 /* result */
            areturn
        end local 2 // android.graphics.Region bounds
        end local 1 // java.util.List result
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Landroid/view/DisplayCutout;
            1   18     1  result  Ljava/util/List<Landroid/graphics/Rect;>;
            2   18     2  bounds  Landroid/graphics/Region;
    Signature: ()Ljava/util/List<Landroid/graphics/Rect;>;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 237
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.hashCode:()I
            istore 1 /* result */
        start local 1 // int result
         1: .line 238
            iload 1 /* result */
            bipush 31
            imul
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.getBounds:()Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.hashCode:()I
            iadd
            istore 1 /* result */
         2: .line 239
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/view/DisplayCutout;
            1    3     1  result  I

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.view.DisplayCutout this
        start local 1 // java.lang.Object o
         0: .line 244
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 245
            iconst_1
            ireturn
         2: .line 247
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof android.view.DisplayCutout
            ifeq 8
         3: .line 248
            aload 1 /* o */
            checkcast android.view.DisplayCutout
            astore 2 /* c */
        start local 2 // android.view.DisplayCutout c
         4: .line 249
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            aload 2 /* c */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            invokevirtual android.graphics.Rect.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 250
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            aload 2 /* c */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 249
            iconst_1
            ireturn
      StackMap locals: android.view.DisplayCutout
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // android.view.DisplayCutout c
         8: .line 252
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/view/DisplayCutout;
            0    9     1     o  Ljava/lang/Object;
            4    8     2     c  Landroid/view/DisplayCutout;
    MethodParameters:
      Name  Flags
      o     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.view.DisplayCutout this
         0: .line 257
            new java.lang.StringBuilder
            dup
            ldc "DisplayCutout{insets="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         1: .line 258
            ldc " boundingRect="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.getBounds:()Landroid/graphics/Rect;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         2: .line 259
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 257
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/DisplayCutout;

  public void writeToProto(android.util.proto.ProtoOutputStream, long);
    descriptor: (Landroid/util/proto/ProtoOutputStream;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.view.DisplayCutout this
         0: .line 267
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tINSETS cannot be resolved to a variable\n\tBOUNDS cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/DisplayCutout;
    MethodParameters:
         Name  Flags
      proto    
      fieldId  

  public android.view.DisplayCutout inset(int, int, int, int);
    descriptor: (IIII)Landroid/view/DisplayCutout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // android.view.DisplayCutout this
        start local 1 // int insetLeft
        start local 2 // int insetTop
        start local 3 // int insetRight
        start local 4 // int insetBottom
         0: .line 279
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokevirtual android.graphics.Region.isEmpty:()Z
            ifne 2
         1: .line 280
            iload 1 /* insetLeft */
            ifne 3
            iload 2 /* insetTop */
            ifne 3
            iload 3 /* insetRight */
            ifne 3
            iload 4 /* insetBottom */
            ifne 3
         2: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         3: .line 284
      StackMap locals:
      StackMap stack:
            new android.graphics.Rect
            dup
            aload 0 /* this */
            getfield android.view.DisplayCutout.mSafeInsets:Landroid/graphics/Rect;
            invokespecial android.graphics.Rect.<init>:(Landroid/graphics/Rect;)V
            astore 5 /* safeInsets */
        start local 5 // android.graphics.Rect safeInsets
         4: .line 285
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            invokestatic android.graphics.Region.obtain:(Landroid/graphics/Region;)Landroid/graphics/Region;
            astore 6 /* bounds */
        start local 6 // android.graphics.Region bounds
         5: .line 289
            iload 2 /* insetTop */
            ifgt 6
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.top:I
            ifle 7
         6: .line 290
      StackMap locals: android.graphics.Rect android.graphics.Region
      StackMap stack:
            aload 5 /* safeInsets */
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.top:I
            iload 2 /* insetTop */
            isub
            invokestatic android.view.DisplayCutout.atLeastZero:(I)I
            putfield android.graphics.Rect.top:I
         7: .line 292
      StackMap locals:
      StackMap stack:
            iload 4 /* insetBottom */
            ifgt 8
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.bottom:I
            ifle 9
         8: .line 293
      StackMap locals:
      StackMap stack:
            aload 5 /* safeInsets */
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.bottom:I
            iload 4 /* insetBottom */
            isub
            invokestatic android.view.DisplayCutout.atLeastZero:(I)I
            putfield android.graphics.Rect.bottom:I
         9: .line 295
      StackMap locals:
      StackMap stack:
            iload 1 /* insetLeft */
            ifgt 10
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.left:I
            ifle 11
        10: .line 296
      StackMap locals:
      StackMap stack:
            aload 5 /* safeInsets */
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.left:I
            iload 1 /* insetLeft */
            isub
            invokestatic android.view.DisplayCutout.atLeastZero:(I)I
            putfield android.graphics.Rect.left:I
        11: .line 298
      StackMap locals:
      StackMap stack:
            iload 3 /* insetRight */
            ifgt 12
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.right:I
            ifle 13
        12: .line 299
      StackMap locals:
      StackMap stack:
            aload 5 /* safeInsets */
            aload 5 /* safeInsets */
            getfield android.graphics.Rect.right:I
            iload 3 /* insetRight */
            isub
            invokestatic android.view.DisplayCutout.atLeastZero:(I)I
            putfield android.graphics.Rect.right:I
        13: .line 302
      StackMap locals:
      StackMap stack:
            aload 6 /* bounds */
            iload 1 /* insetLeft */
            ineg
            iload 2 /* insetTop */
            ineg
            invokevirtual android.graphics.Region.translate:(II)V
        14: .line 303
            new android.view.DisplayCutout
            dup
            aload 5 /* safeInsets */
            aload 6 /* bounds */
            iconst_0
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
            areturn
        end local 6 // android.graphics.Region bounds
        end local 5 // android.graphics.Rect safeInsets
        end local 4 // int insetBottom
        end local 3 // int insetRight
        end local 2 // int insetTop
        end local 1 // int insetLeft
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Landroid/view/DisplayCutout;
            0   15     1    insetLeft  I
            0   15     2     insetTop  I
            0   15     3   insetRight  I
            0   15     4  insetBottom  I
            4   15     5   safeInsets  Landroid/graphics/Rect;
            5   15     6       bounds  Landroid/graphics/Region;
    MethodParameters:
             Name  Flags
      insetLeft    
      insetTop     
      insetRight   
      insetBottom  

  public android.view.DisplayCutout replaceSafeInsets(android.graphics.Rect);
    descriptor: (Landroid/graphics/Rect;)Landroid/view/DisplayCutout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.view.DisplayCutout this
        start local 1 // android.graphics.Rect safeInsets
         0: .line 315
            new android.view.DisplayCutout
            dup
            new android.graphics.Rect
            dup
            aload 1 /* safeInsets */
            invokespecial android.graphics.Rect.<init>:(Landroid/graphics/Rect;)V
            aload 0 /* this */
            getfield android.view.DisplayCutout.mBounds:Landroid/graphics/Region;
            iconst_0
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
            areturn
        end local 1 // android.graphics.Rect safeInsets
        end local 0 // android.view.DisplayCutout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/view/DisplayCutout;
            0    1     1  safeInsets  Landroid/graphics/Rect;
    MethodParameters:
            Name  Flags
      safeInsets  

  private static int atLeastZero(int);
    descriptor: (I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int value
         0: .line 319
            iload 0 /* value */
            ifge 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iload 0 /* value */
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // int value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  I
    MethodParameters:
       Name  Flags
      value  

  public static android.view.DisplayCutout fromBoundingRect(int, int, int, int);
    descriptor: (IIII)Landroid/view/DisplayCutout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // int left
        start local 1 // int top
        start local 2 // int right
        start local 3 // int bottom
         0: .line 330
            invokestatic android.graphics.Region.obtain:()Landroid/graphics/Region;
            astore 4 /* r */
        start local 4 // android.graphics.Region r
         1: .line 331
            aload 4 /* r */
            iload 0 /* left */
            iload 1 /* top */
            iload 2 /* right */
            iload 3 /* bottom */
            invokevirtual android.graphics.Region.set:(IIII)Z
            pop
         2: .line 332
            aload 4 /* r */
            invokestatic android.view.DisplayCutout.fromBounds:(Landroid/graphics/Region;)Landroid/view/DisplayCutout;
            areturn
        end local 4 // android.graphics.Region r
        end local 3 // int bottom
        end local 2 // int right
        end local 1 // int top
        end local 0 // int left
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    left  I
            0    3     1     top  I
            0    3     2   right  I
            0    3     3  bottom  I
            1    3     4       r  Landroid/graphics/Region;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting()
    MethodParameters:
        Name  Flags
      left    
      top     
      right   
      bottom  

  public static android.view.DisplayCutout fromBounds(android.graphics.Region);
    descriptor: (Landroid/graphics/Region;)Landroid/view/DisplayCutout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.graphics.Region region
         0: .line 341
            new android.view.DisplayCutout
            dup
            getstatic android.view.DisplayCutout.ZERO_RECT:Landroid/graphics/Rect;
            aload 0 /* region */
            iconst_0
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
            areturn
        end local 0 // android.graphics.Region region
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  region  Landroid/graphics/Region;
    MethodParameters:
        Name  Flags
      region  

  public static android.view.DisplayCutout fromResourcesRectApproximation(android.content.res.Resources, int, int);
    descriptor: (Landroid/content/res/Resources;II)Landroid/view/DisplayCutout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 352
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
               Name  Flags
      res            
      displayWidth   
      displayHeight  

  public static android.graphics.Path pathFromResources(android.content.res.Resources, int, int);
    descriptor: (Landroid/content/res/Resources;II)Landroid/graphics/Path;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 363
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
               Name  Flags
      res            
      displayWidth   
      displayHeight  

  public static android.view.DisplayCutout fromSpec(java.lang.String, int, int, float);
    descriptor: (Ljava/lang/String;IIF)Landroid/view/DisplayCutout;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.String spec
        start local 1 // int displayWidth
        start local 2 // int displayHeight
        start local 3 // float density
         0: .line 375
            aload 0 /* spec */
            iload 1 /* displayWidth */
            iload 2 /* displayHeight */
            fload 3 /* density */
            invokestatic android.view.DisplayCutout.pathAndDisplayCutoutFromSpec:(Ljava/lang/String;IIF)Landroid/util/Pair;
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.view.DisplayCutout
            areturn
        end local 3 // float density
        end local 2 // int displayHeight
        end local 1 // int displayWidth
        end local 0 // java.lang.String spec
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           spec  Ljava/lang/String;
            0    1     1   displayWidth  I
            0    1     2  displayHeight  I
            0    1     3        density  F
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PRIVATE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.android.internal.annotations.VisibleForTesting(visibility = com.android.internal.annotations.VisibleForTesting$Visibility.PRIVATE:Lcom/android/internal/annotations/VisibleForTesting$Visibility;)
    MethodParameters:
               Name  Flags
      spec           
      displayWidth   
      displayHeight  
      density        

  private static android.util.Pair<android.graphics.Path, android.view.DisplayCutout> pathAndDisplayCutoutFromSpec(java.lang.String, int, int, float);
    descriptor: (Ljava/lang/String;IIF)Landroid/util/Pair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // java.lang.String spec
        start local 1 // int displayWidth
        start local 2 // int displayHeight
        start local 3 // float density
         0: .line 380
            aload 0 /* spec */
            invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 381
            getstatic android.view.DisplayCutout.NULL_PAIR:Landroid/util/Pair;
            areturn
         2: .line 383
      StackMap locals:
      StackMap stack:
            getstatic android.view.DisplayCutout.CACHE_LOCK:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         3: .line 384
            aload 0 /* spec */
            getstatic android.view.DisplayCutout.sCachedSpec:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
            getstatic android.view.DisplayCutout.sCachedDisplayWidth:I
            iload 1 /* displayWidth */
            if_icmpne 8
         4: .line 385
            getstatic android.view.DisplayCutout.sCachedDisplayHeight:I
            iload 2 /* displayHeight */
            if_icmpne 8
         5: .line 386
            getstatic android.view.DisplayCutout.sCachedDensity:F
            fload 3 /* density */
            fcmpl
            ifne 8
         6: .line 387
            getstatic android.view.DisplayCutout.sCachedCutout:Landroid/util/Pair;
            aload 4
            monitorexit
         7: areturn
         8: .line 383
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 4
            monitorexit
        11: athrow
        12: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* spec */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* spec */
        13: .line 392
            aload 0 /* spec */
            ldc "@right"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 393
            iload 1 /* displayWidth */
            i2f
            fstore 4 /* offsetX */
        start local 4 // float offsetX
        15: .line 394
            aload 0 /* spec */
            iconst_0
            aload 0 /* spec */
            invokevirtual java.lang.String.length:()I
            ldc "@right"
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* spec */
        16: .line 395
            goto 18
        end local 4 // float offsetX
        17: .line 396
      StackMap locals:
      StackMap stack:
            iload 1 /* displayWidth */
            i2f
            fconst_2
            fdiv
            fstore 4 /* offsetX */
        start local 4 // float offsetX
        18: .line 398
      StackMap locals: float
      StackMap stack:
            aload 0 /* spec */
            ldc "@dp"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            istore 5 /* inDp */
        start local 5 // boolean inDp
        19: .line 399
            iload 5 /* inDp */
            ifeq 21
        20: .line 400
            aload 0 /* spec */
            iconst_0
            aload 0 /* spec */
            invokevirtual java.lang.String.length:()I
            ldc "@dp"
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 0 /* spec */
        21: .line 403
      StackMap locals: int
      StackMap stack:
            aconst_null
            astore 6 /* bottomSpec */
        start local 6 // java.lang.String bottomSpec
        22: .line 404
            aload 0 /* spec */
            ldc "@bottom"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 26
        23: .line 405
            aload 0 /* spec */
            ldc "@bottom"
            iconst_2
            invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
            astore 7 /* splits */
        start local 7 // java.lang.String[] splits
        24: .line 406
            aload 7 /* splits */
            iconst_0
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 0 /* spec */
        25: .line 407
            aload 7 /* splits */
            iconst_1
            aaload
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* bottomSpec */
        end local 7 // java.lang.String[] splits
        26: .line 411
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic android.graphics.Region.obtain:()Landroid/graphics/Region;
            astore 8 /* r */
        start local 8 // android.graphics.Region r
        27: .line 413
            aload 0 /* spec */
            invokestatic android.util.PathParser.createPathFromPathData:(Ljava/lang/String;)Landroid/graphics/Path;
            astore 7 /* p */
        start local 7 // android.graphics.Path p
        28: .line 414
            goto 32
        end local 7 // android.graphics.Path p
      StackMap locals: java.lang.String int int float float int java.lang.String top android.graphics.Region
      StackMap stack: java.lang.Throwable
        29: astore 9 /* e */
        start local 9 // java.lang.Throwable e
        30: .line 415
            ldc "DisplayCutout"
            ldc "Could not inflate cutout: "
            aload 9 /* e */
            invokestatic android.util.Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        31: .line 416
            getstatic android.view.DisplayCutout.NULL_PAIR:Landroid/util/Pair;
            areturn
        end local 9 // java.lang.Throwable e
        start local 7 // android.graphics.Path p
        32: .line 419
      StackMap locals: java.lang.String int int float float int java.lang.String android.graphics.Path android.graphics.Region
      StackMap stack:
            new android.graphics.Matrix
            dup
            invokespecial android.graphics.Matrix.<init>:()V
            astore 9 /* m */
        start local 9 // android.graphics.Matrix m
        33: .line 420
            iload 5 /* inDp */
            ifeq 35
        34: .line 421
            aload 9 /* m */
            fload 3 /* density */
            fload 3 /* density */
            invokevirtual android.graphics.Matrix.postScale:(FF)Z
            pop
        35: .line 423
      StackMap locals: android.graphics.Matrix
      StackMap stack:
            aload 9 /* m */
            fload 4 /* offsetX */
            fconst_0
            invokevirtual android.graphics.Matrix.postTranslate:(FF)Z
            pop
        36: .line 424
            aload 7 /* p */
            aload 9 /* m */
            invokevirtual android.graphics.Path.transform:(Landroid/graphics/Matrix;)V
        37: .line 426
            new android.graphics.Rect
            dup
            invokespecial android.graphics.Rect.<init>:()V
            astore 10 /* tmpRect */
        start local 10 // android.graphics.Rect tmpRect
        38: .line 427
            aload 7 /* p */
            aload 8 /* r */
            aload 10 /* tmpRect */
            invokestatic android.view.DisplayCutout.toRectAndAddToRegion:(Landroid/graphics/Path;Landroid/graphics/Region;Landroid/graphics/Rect;)V
        39: .line 428
            aload 10 /* tmpRect */
            getfield android.graphics.Rect.bottom:I
            istore 11 /* topInset */
        start local 11 // int topInset
        40: .line 431
            aload 6 /* bottomSpec */
            ifnull 52
        41: .line 434
            aload 6 /* bottomSpec */
            invokestatic android.util.PathParser.createPathFromPathData:(Ljava/lang/String;)Landroid/graphics/Path;
            astore 13 /* bottomPath */
        start local 13 // android.graphics.Path bottomPath
        42: .line 435
            goto 46
        end local 13 // android.graphics.Path bottomPath
      StackMap locals: java.lang.String int int float float int java.lang.String android.graphics.Path android.graphics.Region android.graphics.Matrix android.graphics.Rect int
      StackMap stack: java.lang.Throwable
        43: astore 14 /* e */
        start local 14 // java.lang.Throwable e
        44: .line 436
            ldc "DisplayCutout"
            ldc "Could not inflate bottom cutout: "
            aload 14 /* e */
            invokestatic android.util.Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        45: .line 437
            getstatic android.view.DisplayCutout.NULL_PAIR:Landroid/util/Pair;
            areturn
        end local 14 // java.lang.Throwable e
        start local 13 // android.graphics.Path bottomPath
        46: .line 440
      StackMap locals: java.lang.String int int float float int java.lang.String android.graphics.Path android.graphics.Region android.graphics.Matrix android.graphics.Rect int top android.graphics.Path
      StackMap stack:
            aload 9 /* m */
            fconst_0
            iload 2 /* displayHeight */
            i2f
            invokevirtual android.graphics.Matrix.postTranslate:(FF)Z
            pop
        47: .line 441
            aload 13 /* bottomPath */
            aload 9 /* m */
            invokevirtual android.graphics.Path.transform:(Landroid/graphics/Matrix;)V
        48: .line 442
            aload 7 /* p */
            aload 13 /* bottomPath */
            invokevirtual android.graphics.Path.addPath:(Landroid/graphics/Path;)V
        49: .line 443
            aload 13 /* bottomPath */
            aload 8 /* r */
            aload 10 /* tmpRect */
            invokestatic android.view.DisplayCutout.toRectAndAddToRegion:(Landroid/graphics/Path;Landroid/graphics/Region;Landroid/graphics/Rect;)V
        50: .line 444
            iload 2 /* displayHeight */
            aload 10 /* tmpRect */
            getfield android.graphics.Rect.top:I
            isub
            istore 12 /* bottomInset */
        end local 13 // android.graphics.Path bottomPath
        start local 12 // int bottomInset
        51: .line 445
            goto 53
        end local 12 // int bottomInset
        52: .line 446
      StackMap locals: java.lang.String int int float float int java.lang.String android.graphics.Path android.graphics.Region android.graphics.Matrix android.graphics.Rect int
      StackMap stack:
            iconst_0
            istore 12 /* bottomInset */
        start local 12 // int bottomInset
        53: .line 450
      StackMap locals: int
      StackMap stack:
            aload 10 /* tmpRect */
            iconst_0
            iload 11 /* topInset */
            iconst_0
            iload 12 /* bottomInset */
            invokevirtual android.graphics.Rect.set:(IIII)V
        54: .line 451
            new android.view.DisplayCutout
            dup
            aload 10 /* tmpRect */
            aload 8 /* r */
            iconst_0
            invokespecial android.view.DisplayCutout.<init>:(Landroid/graphics/Rect;Landroid/graphics/Region;Z)V
            astore 13 /* cutout */
        start local 13 // android.view.DisplayCutout cutout
        55: .line 453
            new android.util.Pair
            dup
            aload 7 /* p */
            aload 13 /* cutout */
            invokespecial android.util.Pair.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
            astore 14 /* result */
        start local 14 // android.util.Pair result
        56: .line 454
            getstatic android.view.DisplayCutout.CACHE_LOCK:Ljava/lang/Object;
            dup
            astore 15
            monitorenter
        57: .line 455
            aload 0 /* spec */
            putstatic android.view.DisplayCutout.sCachedSpec:Ljava/lang/String;
        58: .line 456
            iload 1 /* displayWidth */
            putstatic android.view.DisplayCutout.sCachedDisplayWidth:I
        59: .line 457
            iload 2 /* displayHeight */
            putstatic android.view.DisplayCutout.sCachedDisplayHeight:I
        60: .line 458
            fload 3 /* density */
            putstatic android.view.DisplayCutout.sCachedDensity:F
        61: .line 459
            aload 14 /* result */
            putstatic android.view.DisplayCutout.sCachedCutout:Landroid/util/Pair;
        62: .line 454
            aload 15
            monitorexit
        63: goto 66
      StackMap locals: java.lang.String int int float float int java.lang.String android.graphics.Path android.graphics.Region android.graphics.Matrix android.graphics.Rect int int android.view.DisplayCutout android.util.Pair java.lang.Object
      StackMap stack: java.lang.Throwable
        64: aload 15
            monitorexit
        65: athrow
        66: .line 461
      StackMap locals:
      StackMap stack:
            aload 14 /* result */
            areturn
        end local 14 // android.util.Pair result
        end local 13 // android.view.DisplayCutout cutout
        end local 12 // int bottomInset
        end local 11 // int topInset
        end local 10 // android.graphics.Rect tmpRect
        end local 9 // android.graphics.Matrix m
        end local 8 // android.graphics.Region r
        end local 7 // android.graphics.Path p
        end local 6 // java.lang.String bottomSpec
        end local 5 // boolean inDp
        end local 4 // float offsetX
        end local 3 // float density
        end local 2 // int displayHeight
        end local 1 // int displayWidth
        end local 0 // java.lang.String spec
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   67     0           spec  Ljava/lang/String;
            0   67     1   displayWidth  I
            0   67     2  displayHeight  I
            0   67     3        density  F
           15   17     4        offsetX  F
           18   67     4        offsetX  F
           19   67     5           inDp  Z
           22   67     6     bottomSpec  Ljava/lang/String;
           24   26     7         splits  [Ljava/lang/String;
           28   29     7              p  Landroid/graphics/Path;
           32   67     7              p  Landroid/graphics/Path;
           27   67     8              r  Landroid/graphics/Region;
           30   32     9              e  Ljava/lang/Throwable;
           33   67     9              m  Landroid/graphics/Matrix;
           38   67    10        tmpRect  Landroid/graphics/Rect;
           40   67    11       topInset  I
           51   52    12    bottomInset  I
           53   67    12    bottomInset  I
           42   43    13     bottomPath  Landroid/graphics/Path;
           46   51    13     bottomPath  Landroid/graphics/Path;
           44   46    14              e  Ljava/lang/Throwable;
           55   67    13         cutout  Landroid/view/DisplayCutout;
           56   67    14         result  Landroid/util/Pair<Landroid/graphics/Path;Landroid/view/DisplayCutout;>;
      Exception table:
        from    to  target  type
           3     7      10  any
           8     9      10  any
          10    11      10  any
          27    28      29  Class java.lang.Throwable
          41    42      43  Class java.lang.Throwable
          57    63      64  any
          64    65      64  any
    Signature: (Ljava/lang/String;IIF)Landroid/util/Pair<Landroid/graphics/Path;Landroid/view/DisplayCutout;>;
    MethodParameters:
               Name  Flags
      spec           
      displayWidth   
      displayHeight  
      density        

  private static void toRectAndAddToRegion(android.graphics.Path, android.graphics.Region, android.graphics.Rect);
    descriptor: (Landroid/graphics/Path;Landroid/graphics/Region;Landroid/graphics/Rect;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.graphics.Path p
        start local 1 // android.graphics.Region inoutRegion
        start local 2 // android.graphics.Rect inoutRect
         0: .line 465
            new android.graphics.RectF
            dup
            invokespecial android.graphics.RectF.<init>:()V
            astore 3 /* rectF */
        start local 3 // android.graphics.RectF rectF
         1: .line 466
            aload 0 /* p */
            aload 3 /* rectF */
            iconst_0
            invokevirtual android.graphics.Path.computeBounds:(Landroid/graphics/RectF;Z)V
         2: .line 467
            aload 3 /* rectF */
            aload 2 /* inoutRect */
            invokevirtual android.graphics.RectF.round:(Landroid/graphics/Rect;)V
         3: .line 468
            aload 1 /* inoutRegion */
            aload 2 /* inoutRect */
            getstatic android.graphics.Region$Op.UNION:Landroid/graphics/Region$Op;
            invokevirtual android.graphics.Region.op:(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
            pop
         4: .line 469
            return
        end local 3 // android.graphics.RectF rectF
        end local 2 // android.graphics.Rect inoutRect
        end local 1 // android.graphics.Region inoutRegion
        end local 0 // android.graphics.Path p
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0            p  Landroid/graphics/Path;
            0    5     1  inoutRegion  Landroid/graphics/Region;
            0    5     2    inoutRect  Landroid/graphics/Rect;
            1    5     3        rectF  Landroid/graphics/RectF;
    MethodParameters:
             Name  Flags
      p            
      inoutRegion  
      inoutRect    

  private static android.graphics.Region boundingRectsToRegion(java.util.List<android.graphics.Rect>);
    descriptor: (Ljava/util/List;)Landroid/graphics/Region;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.util.List rects
         0: .line 472
            invokestatic android.graphics.Region.obtain:()Landroid/graphics/Region;
            astore 1 /* result */
        start local 1 // android.graphics.Region result
         1: .line 473
            aload 0 /* rects */
            ifnull 6
         2: .line 474
            aload 0 /* rects */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.List android.graphics.Region top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.graphics.Rect
            astore 2 /* r */
        start local 2 // android.graphics.Rect r
         4: .line 475
            aload 1 /* result */
            aload 2 /* r */
            getstatic android.graphics.Region$Op.UNION:Landroid/graphics/Region$Op;
            invokevirtual android.graphics.Region.op:(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z
            pop
        end local 2 // android.graphics.Rect r
         5: .line 474
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 478
      StackMap locals: java.util.List android.graphics.Region
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // android.graphics.Region result
        end local 0 // java.util.List rects
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   rects  Ljava/util/List<Landroid/graphics/Rect;>;
            1    7     1  result  Landroid/graphics/Region;
            4    5     2       r  Landroid/graphics/Rect;
    Signature: (Ljava/util/List<Landroid/graphics/Rect;>;)Landroid/graphics/Region;
    MethodParameters:
       Name  Flags
      rects  
}
SourceFile: "DisplayCutout.java"
NestMembers:
  android.view.DisplayCutout$ParcelableWrapper  android.view.DisplayCutout$ParcelableWrapper$1
InnerClasses:
  public final Op = android.graphics.Region$Op of android.graphics.Region
  public final ParcelableWrapper = android.view.DisplayCutout$ParcelableWrapper of android.view.DisplayCutout
  public final Visibility = com.android.internal.annotations.VisibleForTesting$Visibility of com.android.internal.annotations.VisibleForTesting